Kompatibilitas Apache Hive
Berlaku untuk: 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)
- Ekspresi relasional (
- 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 petunjukSTREAMTABLE
. - 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.