Share via


Apache Hive-kompatibilitás

A következőkre vonatkozik:check marked yes Databricks Runtime

Az Apache Spark SQL az Azure Databricksben úgy lett kialakítva, hogy kompatibilis legyen az Apache Hive-vel, beleértve a metaadattár-kapcsolatot, a SerDes-t és az UDF-eket.

SerDes és UDFs

A Hive SerDes és az UDF-ek a Hive 1.2.1-en alapulnak.

Metaadattár-kapcsolat

Az Azure Databricks külsőleg üzemeltetett Hive-metaadattárhoz való csatlakoztatásáról további információt a Külső Apache Hive metaadattárban talál .

Támogatott Hive-funkciók

A Spark SQL a Hive-funkciók túlnyomó többségét támogatja, például:

  • Hive-lekérdezési utasítások, beleértve a következőket:
    • SELECT
    • GROUP BY
    • ORDER BY
    • FÜRT A KÖVETKEZŐ SZERINT:
    • RENDEZÉSI SZEMPONT
  • Minden Hive-kifejezés, beleértve a következőket:
    • Relációs kifejezések (=, , ==, <>, <, >>=, , <=stb.)
    • Számtani kifejezések (+, , -, */, %stb.)
    • Logikai kifejezések (AND, &&; OR, ||stb.)
    • Összetett típusú konstruktorok
    • Matematikai kifejezések (jel, ln, cos stb.)
    • Sztringkifejezések (instr, length, printf stb.)
  • Felhasználó által definiált függvények (UDF)
  • Felhasználó által definiált összesítő függvények (UDAF)
  • Felhasználó által definiált szerializálási formátumok (SerDes)
  • Ablakfunkciók
  • Csatlakozik
    • JOIN
    • {LEFT|JOBB|FULL} KÜLSŐ ILLESZTÉS
    • LEFT Standard kiadás MI JOIN
    • KERESZTBE ILLESZTÉS
  • Szakszervezetek
  • Al-lekérdezések
    • Standard kiadás LECT col FROM (Standard kiadás LECT a + b AS col from t1) t2
  • Sampling
  • Explain
  • Particionált táblák, beleértve a dinamikus partíció beszúrását
  • View
  • A DDL-utasítások túlnyomó többsége, beleértve a következőket:
    • CREATE TABLE
    • CREATE TABLE AS SELECT
    • ALTER TABLE
  • A Legtöbb Hive-adattípus, beleértve a következőket:
    • TINYINT
    • SMALLINT
    • INT
    • BIGINT
    • LOGIKAI
    • ÚSZÓ
    • DUPLA
    • KARAKTERLÁNC
    • BINÁRIS
    • TIMESTAMP
    • DÁTUM
    • TÖMB<>
    • MEGJELENÍTÉSE<>
    • STRUCT<>

Nem támogatott Hive-funkciók

Az alábbi szakaszok olyan Hive-funkciókat tartalmaznak, amelyeket a Spark SQL nem támogat. A legtöbb ilyen funkciót ritkán használják a Hive üzemelő példányaiban.

Fő Hive-funkciók

  • Írás a Hive által létrehozott gyűjtő táblába
  • ACID részletes frissítések

Ezoterikus Hive-funkciók

  • Unió típusa
  • Egyedi illesztés
  • Oszlopstatisztikák gyűjtése: A Spark SQL jelenleg nem végez visszavizsgálatokat az oszlopstatisztikák gyűjtéséhez, és csak a Hive metaadattár SizeInBytes mezőjének feltöltését támogatja

Hive bemeneti és kimeneti formátumok

  • Fájlformátum a parancssori felülethez: A parancssori felületre vissza mutató eredmények esetében a Spark SQL csak a TextOutputFormatot támogatja
  • Hadoop archívum

Hive-optimalizálás

Néhány Hive-optimalizálás nem szerepel a Sparkban. Ezek némelyike (például indexek) kevésbé fontosak a Spark SQL memóriabeli számítási modellje miatt.

  • Blokkszintű bitképindexek és virtuális oszlopok (indexek létrehozásához használatos).
  • Automatikusan határozza meg az illesztések és csoportcsoportok redukálóinak számát: A Spark SQL-ben szabályoznia kell a párhuzamosság fokát a párhuzamosság után SET spark.sql.shuffle.partitions=[num_tasks];.
  • Ferde adatjelző: A Spark SQL nem követi a Hive-ben a ferde adatjelzőt.
  • STREAMTABLE tipp illesztéskor: A Spark SQL nem követi a STREAMTABLE tippet.
  • Több kis fájl egyesítése lekérdezési eredményekhez: ha az eredménykimenet több kis fájlt tartalmaz, a Hive igény szerint összevonhatja a kis fájlokat kevesebb nagy fájlba, hogy elkerülje a HDFS-metaadatok túlcsordulását. A Spark SQL ezt nem támogatja.