Kompatibilitas Apache Hive

Berlaku untuk:centang ditandai ya Databricks Runtime

Apache Spark SQL di Azure Databricks dirancang agar kompatibel dengan Apache Hive, termasuk konektivitas metastore, SerDes, dan UDF.

SerDes dan UDF

Apache Hive SerDes dan UDF didasarkan pada Hive 1.2.1.

Konektivitas Metastore

Lihat Metastore Apache Hive Eksternal (warisan) untuk informasi tentang cara menyambungkan Azure Databricks ke metastore Apache Hive yang dihosting secara eksternal.

Fitur yang Didukung dari Apache Hive

Spark SQL mendukung sebagian besar fitur Apache Hive, seperti:

  • Pernyataan kueri Hive, termasuk:
    • SELECT
    • GROUP BY
    • ORDER BY
    • CLUSTER BY
    • SORT BY
  • Semua ekspresi Hive, termasuk:
    • Ekspresi relasional (=, , ==, <>, <, >, >=, <=, dll)
    • Ekspresi aritmetika (+, -, *, /, %, dll)
    • Ekspresi logika (AND, &&, OR, ||, dll)
    • Konstruktor jenis kompleks
    • Ekspresi matematika (sign, ln, cos, dll)
    • Ekspresi string (instr, length, printf, dll)
  • Fungsi yang ditentukan pengguna (UDF)
  • Fungsi agregasi yang ditentukan pengguna (UDAF)
  • Format serialisasi yang ditentukan pengguna (SerDes)
  • Fungsi jendela
  • Bergabung
    • JOIN
    • {KIRI|KANAN|PENUH} LUAR JOIN
    • KIRI SEPARUH JOIN
    • SALIB JOIN
  • Serikat-serikat
  • Subkueri
    • SELECT col FROM ( SELECT a + b SEBAGAI col dari t1) t2
  • Pengambilan sampel
  • Jelaskan
  • Tabel yang dipartisi termasuk penyisipan partisi dinamis
  • Tampilan
  • Sebagian besar pernyataan DDL, termasuk:
    • CREATE TABLE
    • CREATE TABLE SEBAGAI SELECT
    • ALTER TABLE
  • Sebagian besar tipe data Hive, termasuk:
    • TINYINT
    • SMALLINT
    • INT
    • BIGINT
    • Boolean
    • mengambang
    • GANDA
    • TALI
    • BINER
    • TANDA WAKTU
    • TANGGAL
    • Array<>
    • PETA<>
    • STRUKTUR<>

Fungsionalitas Apache Hive yang tidak didukung

Bagian berikut berisi daftar fitur Apache Hive yang tidak didukung Spark SQL. Sebagian besar fitur ini jarang digunakan dalam penyebaran Hive.

Fitur utama Hive

  • Menulis ke tabel dibucket yang dibuat oleh Hive
  • Pembaruan mendetail ACID

Fitur Khusus Apache Hive

  • Jenis Penyatuan
  • Penggabungan unik
  • Statistik kolom yang dikumpulkan: Spark SQL tidak melakukan pemindaian piggyback untuk mengumpulkan statistik kolom saat ini dan hanya mendukung pengisian bidang sizeInBytes dari metastore Apache Hive

Format input dan output Hive

  • Format file untuk CLI: Untuk hasil yang ditampilkan kembali ke CLI, Spark SQL hanya mendukung TextOutputFormat
  • Arsip Hadoop

Pengoptimalan Hive

Beberapa pengoptimalan Apache Hive tidak disertakan dalam Spark. Beberapa di antaranya (seperti indeks) kurang penting karena model komputasi dalam memori Spark SQL.

  • Indeks bitmap tingkat blok dan kolom virtual (digunakan untuk membangun indeks).
  • Secara otomatis menentukan jumlah pengurang untuk join dan groupby: Di Spark SQL, Anda perlu mengontrol tingkat paralelisme pasca-shuffle menggunakan SET spark.sql.shuffle.partitions=[num_tasks];.
  • Penanda data miring: Spark SQL tidak mengikuti penanda data miring di Hive.
  • STREAMTABLE petunjuk dalam bergabung: Spark SQL tidak mengikuti petunjuk STREAMTABLE.
  • Menggabungkan beberapa file kecil untuk hasil kueri: jika output hasil berisikan beberapa file kecil, Hive dapat secara opsional menggabungkan file-file kecil menjadi file-file besar dengan jumlah yang lebih sedikit untuk menghindari kelebihan metadata HDFS. Spark SQL tidak mendukung hal tersebut.