Kompatibilitas Apache Hive

Berlaku untuk:check marked yes 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 Apache Hive yang didukung

Spark SQL mendukung sebagian besar fitur Apache Hive, seperti:

  • Pernyataan kueri Apache Hive, termasuk:
    • SELECT
    • GROUP BY
    • ORDER BY
    • CLUSTER BY
    • SORT BY
  • Semua ekspresi Apache 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
    • IKUTI
    • {LEFT|RIGHT|FULL} OUTER JOIN
    • LEFT SEMI JOIN
    • CROSS JOIN
  • Union
  • Sub-kueri
    • SELECT col FROM ( SELECT a + b AS col dari t1) t2
  • Pengambilan sampel
  • Jelaskan
  • Tabel berpartisi termasuk penyisipan partisi dinamis
  • Tampilkan
  • Sebagian besar pernyataan DDL, termasuk:
    • CREATE TABLE
    • CREATE TABLE AS SELECT
    • ALTER TABLE
  • Sebagian besar jenis data Apache Hive, termasuk:
    • TINYINT
    • SMALLINT
    • INT
    • BIGINT
    • BOOLEAN
    • FLOAT
    • DOUBLE
    • STRING
    • BINER
    • TANDA WAKTU
    • TANGGAL
    • ARRAY<>
    • PETA<>
    • STRUCT<>

Fungsionalitas Apache Hive yang tidak didukung

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

Fitur utama Apache Hive

  • Menulis ke tabel dalam wadah yang dibuat oleh Apache Hive
  • Pembaruan mendetail ACID

Fitur Esoterik Apache Hive

  • Jenis Penyatuan
  • Gabungan unik
  • Statistik kolom mengumpulkan: Spark SQL tidak mendukung pemindaian untuk mengumpulkan statistik kolom saat ini dan hanya mendukung pengisian bidang sizeInBytes metastore Apache Hive

Format input dan output Apache Hive

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

Pengoptimalan Apache Hive

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

  • Memblokir indeks dan kolom virtual tingkat bitmap (digunakan untuk membangun indeks).
  • Secara otomatis menentukan jumlah reduksi untuk gabungan dan grup: Di Spark SQL, Anda perlu mengontrol tingkat paralelisme pasca-acak menggunakan SET spark.sql.shuffle.partitions=[num_tasks];.
  • Penyimpangan bendera data: Spark SQL tidak mengikuti penyimpangan bendera data di Apache Hive.
  • Petunjuk STREAMTABLE dalam gabungan: Spark SQL tidak mengikuti petunjuk STREAMTABLE.
  • Menggabungkan beberapa file kecil untuk hasil kueri: jika output hasil berisikan beberapa file kecil, Apache Hive hanya dapat menggabungkan beberapa file kecil menjadi file besar dengan jumlah yang lebih sedikit secara opsional untuk menghindari luapan metadata HDFS. Spark SQL tidak mendukung hal tersebut.