Kompatibilita Apache Hivu

Platí pro: zaškrtnutí označeného 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ým metastoru 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 dotazů Hive, včetně:
    • VÝBĚR
    • GROUP BY
    • ORDER BY
    • CLUSTER BY
    • ŘAZENÍ
  • 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ŠÍ SPOJENÍ
    • SPOJENÍ ZLEVA
    • KŘÍŽOVÉ SPOJENÍ
  • Sjednocení
  • Dílčí dotazy
    • SELECT col FROM ( SELECT a + b AS col from t1) t2
  • Vzorkování
  • Explain
  • Dělené tabulky včetně vložení dynamického oddílu
  • Zobrazení
  • Velká většina příkazů DDL, včetně:
    • CREATE TABLE
    • CREATE TABLE AS SELECT
    • ALTER TABLE
  • Většina datových typů Hive, včetně:
    • TINYINT
    • SMALLINT
    • INT
    • BIGINT
    • BOOLEOVSKÝ
    • FLOAT
    • DVOJITÝ
    • STRING
    • BINÁRNÍ
    • ČASOVÉ RAZÍTKO
    • DATE
    • POLE<>
    • MAPA<>
    • STRUCT<>

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 Hivu

  • Zápis do kontejnerové tabulky vytvořené Hivem
  • Jemně odstupňované aktualizace ACID

Funkce Esoteric Hive

  • Typ sjednocení
  • Jedinečné spojení
  • Shromažďování statistik sloupců: Spark SQL v tuto chvíli neshromažďuje statistiky sloupců a podporuje pouze naplnění pole sizeInBytes metastoru Hive.

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 Hivu

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 musíte řídit stupeň paralelismu post-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 tip při spojení: Spark SQL nedodržuje nápovědu STREAMTABLE .
  • 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.