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
Dapatkan petunjuk langkah demi langkah untuk Memigrasikan skema dan data dari Apache Hive.