Migrasi Apache Hive ke BigQuery: Ringkasan

Dokumen ini membandingkan perbedaan antara Apache Hive dan BigQuery serta membahas pertimbangan utama untuk migrasi. Untuk mengetahui informasi selengkapnya tentang cara menyelesaikan migrasi, lihat Panduan migrasi Apache Hive.

Anda juga dapat menggunakan terjemahan SQL batch untuk memigrasikan skrip SQL secara massal, atau terjemahan SQL interaktif untuk menerjemahkan kueri ad hoc. Apache HiveQL didukung sepenuhnya oleh kedua layanan terjemahan SQL.

Fitur

Hive dan BigQuery adalah sistem data warehouse terdistribusi. Tabel berikut membandingkan beberapa fitur umumnya:

Fitur Hive BigQuery
Ketersediaan Bergantung pada penerapannya Waktu beroperasi >= 99,99% bulanan
Kuota Bergantung pada penerapannya Kuota BigQuery
Format yang didukung Avro, Parquet, ORC, Teks Avro, Parquet, ORC, CSV, JSON, Google Drive
Penyimpanan tabel terkelola HDFS Penyimpanan BigQuery dalam format Capacitor
Sumber tabel eksternal HDFS, HBase Google Cloud Storage, Google Spreadsheet, Bigtable
Transaksi Terbatas. ACID pada level partisi Dibatasi pada level partisi. Mendukung transaksi multi-pernyataan.
Dukungan API JDBC, ODBC, Thrift JDBC, ODBC, Library klien dengan banyak bahasa
Membuat partisi Support Kolom satuan waktu, waktu penyerapan, atau rentang bilangan bulat
Dukungan Support Support
Replikasi Bergantung pada HDFS. Tidak ada replikasi lintas pusat data Replikasi lintas data yang andal yang dikelola oleh Google
UDF Semua bahasa SQL atau JavaScript
Muat data Batch, Streaming (terbatas) Batch, Streaming
Operasi data DDL, DML DDL, DML, DCL, TCL

Jenis data

Apache Hive dan BigQuery memiliki sistem jenis data yang berbeda. Pada sebagian besar kasus, jenis data di Hive dapat dipetakan ke jenis data BigQuery dengan beberapa pengecualian, seperti MAP dan UNION. Apache Hive menjalankan jenis transmisi yang lebih implisit daripada BigQuery. Akibatnya, penerjemah SQL batch menyisipkan banyak transmisi eksplisit.

Hive BigQuery
TINYINT INT64
SMALLINT INT64
INT INT64
BIGINT INT64
DECIMAL NUMERIC
FLOAT FLOAT64
DOUBLE FLOAT64
BOOLEAN BOOL
STRING STRING
VARCHAR STRING
CHAR STRING
BINARY BYTES
DATE DATE
- DATETIME
- TIME
TIMESTAMP DATETIME/TIMESTAMP
INTERVAL -
ARRAY ARRAY
STRUCT STRUCT
MAPS STRUCT dengan nilai kunci (kolom REPEAT)
UNION STRUCT dengan beragam jenis
- GEOGRAPHY
- JSON

Fungsi yang ditentukan pengguna (UDF)

Apache Hive mendukung penulisan fungsi yang ditentukan pengguna (UDF) di Java. Anda dapat memuat UDF ke Hive untuk digunakan dalam kueri reguler. UDF BigQuery harus ditulis dalam GoogleSQL atau JavaScript. Konversi Hive UDF ke UDF SQL direkomendasikan karena UDF SQL memiliki performa lebih baik. Jika Anda perlu menggunakan JavaScript, baca Praktik Terbaik untuk UDF JavaScript. Untuk bahasa lain, BigQuery mendukung fungsi jarak jauh yang memungkinkan Anda memanggil fungsi di Cloud Functions atau Cloud Run dari kueri GoogleSQL.

BigQuery tidak mendukung fungsi agregasi yang ditentukan pengguna (UDAF).

Keamanan

Hive dan BigQuery memiliki model keamanan yang berbeda yang dijelaskan di bagian berikut:

Kontrol akses Hive

Untuk tujuan otorisasi, Hive memperkenalkan Otorisasi Berbasis Standar SQL (diperkenalkan di Hive 0.13.0) untuk mengaktifkan kontrol akses yang terperinci. Otorisasi ini menggunakan kontrol akses berbasis peran (RBAC) untuk mengelola otorisasi sebagian besar pengguna dan objek data dalam lingkungan perusahaan standar. Mekanisme keamanan ini didasarkan pada identitas Hadoop. Hadoop mengandalkan Kerberos untuk mengautentikasi identitas.

Mengamankan dengan Apache Sentry dan Apache Ranger

Apache Ranger dan Apache Sentry adalah project Apache yang menggunakan plugin yang disediakan oleh Hive untuk menerapkan otorisasi. Mengonfigurasi Hive RBAC tidak sepenuhnya mengamankan data, karena data Hive biasanya disimpan di HDFS, sehingga pengguna dapat langsung menjangkau data yang seharusnya tidak mereka lihat. Ranger dan Sentry juga menerapkan data pada HDFS dengan ACL POSIX yang diterjemahkan dari setelan RBAC dari Hive.

Keamanan BigQuery

BigQuery menggunakan Identity and Access Management untuk mengontrol akses ke data dalam sebuah project. Anda dapat membatasi akses ke set data BigQuery. Tabel dan tampilan adalah resource turunan set data dan izinnya diwarisi dari set data. Anda dapat menetapkan keamanan level baris dan level kolom ke setiap tabel.

Anda juga dapat membatasi akses menggunakan Tampilan yang diizinkan dan Set data yang diizinkan.

BigQuery akan mengenkripsi data secara default. Untuk mengelola kunci enkripsi Anda sendiri, Anda dapat menggunakan Cloud KMS dengan BigQuery.

Langkah selanjutnya