Kompatibilita Apache Hivu
Platí pro: 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.)
- Relační výrazy (
- 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ěduSTREAMTABLE
.- 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.