Sdílet prostřednictvím


Kompatibilita Apache Hivu

Platí pro:je zaškrtnuto ano Databricks Runtime

Apache Spark SQL v Azure Databricks je navržený tak, aby byl kompatibilní s Apache Hivem, včetně připojení metastoru, SerDes a UDF.

SerDes a uživatelem definované funkce

Hive SerDes a UDF jsou založené na Hive 1.2.1.

Připojení k metastoru

Informace o připojení Azure Databricks k externě hostovanému metastore Hive najdete v tématu Externí metastore Apache Hive (starší verze).

Podporované funkce Hivu

Spark SQL podporuje velkou většinu funkcí Hive, například:

  • Příkazy pro dotazy v Hive, včetně:
    • SELECT
    • GROUP BY
    • ORDER BY
    • CLUSTER BY
    • SORT BY
  • Všechny výrazy Hive, včetně:
    • Relační výrazy (=, , , ==<>, <, >, , >=, , <=atd.)
    • Aritmetické výrazy (+, -, *, /, %, atd.)
    • Logické výrazy (AND, &, &, OR, ||atd.)
    • Konstruktory komplexního typu
    • Matematické výrazy (znaménko, ln, cos atd.)
    • Řetězcové výrazy (instr, length, printf atd.)
  • Uživatelem definované funkce (UDF)
  • Uživatelem definované agregační funkce (UDAF)
  • Uživatelsky definované formáty serializace (SerDes)
  • Funkce okna
  • Připojuje
    • JOIN
    • {LEFT|RIGHT|FULL} VNĚJŠÍ JOIN
    • LEVÝ SEMI JOIN
    • KŘÍŽ JOIN
  • Odbory
  • Dílčí dotazy
    • SELECT sloupec Z ( SELECT a + b AS sloupec z t1) t2
  • Vzorkování
  • Vysvětlit
  • Dělené tabulky včetně vložení dynamické fragmentace
  • Zobrazit
  • Velká většina příkazů DDL, včetně:
    • CREATE TABLE
    • CREATE TABLE JAKO SELECT
    • ALTER TABLE
  • Většina datových typů Hive, včetně:
    • TINYINT
    • SMALLINT
    • INT
    • BIGINT
    • BOOLEOVSKÝ
    • PLOVAT
    • DVOJITÝ
    • ŘETĚZEC
    • BINÁRNÍ
    • ČASOVÉ RAZÍTKO
    • DATUM
    • POLE<>
    • MAPA<>
    • Struktura<>

Nepodporované funkce Hivu

Následující části obsahují seznam funkcí Hive, které Spark SQL nepodporuje. Většina těchto funkcí se v nasazeních Hive používá zřídka.

Hlavní funkce Hive

  • Zápis do kontejnerové tabulky vytvořené Hivem
  • Detailní aktualizace ACID

Funkce Esoteric Hive

  • Typ sjednocení
  • Jedinečné spojení
  • Shromažďování statistik sloupců: Spark SQL momentálně nepoužívá skenování pro shromažďování statistik sloupců a podporuje pouze naplnění pole sizeInBytes v Hive metadatabázi.

Vstupní a výstupní formáty Hive

  • Formát souboru pro rozhraní příkazového řádku: Pro výsledky, které se zobrazují zpět do rozhraní příkazového řádku, Spark SQL podporuje pouze TextOutputFormat.
  • Archiv Hadoopu

Optimalizace Hive

Spark neobsahuje několik optimalizací Hivu. Některé z nich (například indexy) jsou méně důležité kvůli výpočetnímu modelu Spark SQL v paměti.

  • Indexy rastrových obrázků na úrovni bloku a virtuální sloupce (používané k sestavení indexů).
  • Automaticky určit počet reduktorů pro spojení a seskupování: Ve Spark SQL je potřeba ovládat míru paralelismu po shuffle pomocí SET spark.sql.shuffle.partitions=[num_tasks];.
  • Příznak nerovnoměrné distribuce dat: Spark SQL neodpovídá příznaku nerovnoměrné distribuce dat v Hive.
  • STREAMTABLE rada při připojení: Spark SQL nedodržuje STREAMTABLE radu.
  • Sloučit několik malých souborů pro výsledky dotazu: Pokud výstup výsledku obsahuje více malých souborů, může Hive volitelně sloučit malé soubory do méně velkých souborů, aby se zabránilo přetečení metadat HDFS. Spark SQL to nepodporuje.