Memigrasikan skema dan data dari Apache Hive

Dokumen ini menjelaskan cara memigrasikan data, setelan keamanan, dan pipeline dari Apache Hive ke BigQuery.

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

Mempersiapkan untuk migrasi

Bagian berikut menjelaskan cara mengumpulkan informasi tentang statistik tabel, metadata, dan setelan keamanan tabel untuk membantu Anda memigrasikan data warehouse dari Hive ke BigQuery.

Mengumpulkan informasi tabel sumber

Mengumpulkan informasi tentang tabel Hive sumber seperti jumlah baris, jumlah kolom, jenis data kolom, ukuran, format input data, dan lokasi. Informasi ini berguna dalam proses migrasi dan juga untuk memvalidasi migrasi data. Jika Anda memiliki tabel Hive bernama employees dalam database bernama corp, gunakan perintah berikut untuk mengumpulkan informasi tabel:

# Find the number of rows in the table
hive> SELECT COUNT(*) FROM corp.employees;

# Output all the columns and their data types
hive> DESCRIBE corp.employees;

# Output the input format and location of the table
hive> SHOW CREATE TABLE corp.employees;
Output:
…
STORED AS INPUTFORMAT
  'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION
  'hdfs://demo_cluster/user/hive/warehouse/corp/employees'
TBLPROPERTIES (
…

# Get the total size of the table data in bytes
shell> hdfs dfs -du -s TABLE_LOCATION

Konversi format tabel sumber

Beberapa format yang didukung Hive tidak dapat diserap ke BigQuery secara langsung.

Hive mendukung penyimpanan data dalam format berikut:

  • File teks
  • File RC
  • File urutan
  • File Avro
  • File ORC
  • File Parquet

BigQuery mendukung pemuatan data dari Cloud Storage dalam salah satu format file berikut:

  • CSV
  • JSON (Dibatasi baris baru)
  • Avro
  • ORC
  • Parquet

BigQuery dapat memuat file data dalam format Avro, ORC, dan Parquet secara langsung tanpa memerlukan file skema. Untuk file teks yang tidak diformat sebagai CSV atau JSON (Newline yang dibatasi), Anda dapat menyalin data ke tabel Hive dalam format Avro, atau mengonversi skema tabel ke BigQuery skema JSON yang akan diberikan saat penyerapan.

Mengumpulkan setelan kontrol akses Hive

Hive dan BigQuery memiliki mekanisme kontrol akses yang berbeda. Mengumpulkan semua setelan kontrol akses Hive seperti peran, grup, anggota, dan hak istimewa yang diberikan kepada mereka. Petakan model keamanan di BigQuery pada level per set data dan terapkan ACL yang terperinci. Misalnya, pengguna Hive dapat dipetakan ke Akun Google dan grup HDFS dapat dipetakan ke grup Google. Akses dapat ditetapkan pada level set data. Gunakan perintah berikut untuk mengumpulkan setelan kontrol akses di Hive:

# List all the users
> hdfs dfs -ls /user/ | cut -d/ -f3

# Show all the groups that a specific user belongs to
> hdfs groups user_name

# List all the roles
hive> SHOW ROLES;

# Show all the roles assigned to a specific group
hive> SHOW ROLE GRANT GROUP group_name

# Show all the grants for a specific role
hive> SHOW GRANT ROLE role_name;

# Show all the grants for a specific role on a specific object
hive> SHOW GRANT ROLE role_name on object_type object_name;

Di Hive, Anda dapat langsung mengakses file HDFS di belakang tabel jika memiliki izin yang diperlukan. Dalam tabel BigQuery standar, setelah data dimuat ke dalam tabel, data akan disimpan di penyimpanan BigQuery. Anda dapat membaca data dengan menggunakan BigQuery Storage Read API, tetapi semua keamanan level IAM, baris, dan kolom masih diterapkan. Jika Anda menggunakan tabel eksternal BigQuery untuk membuat kueri data di Cloud Storage, akses ke Cloud Storage juga dikontrol oleh IAM.

Anda dapat membuat tabel BigLake yang memungkinkan Anda menggunakan connectors untuk membuat kueri data dengan Apache Spark, Trino, atau Apache Hive. BigQuery Storage API menerapkan kebijakan tata kelola level baris dan kolom untuk semua tabel BigLake di Cloud Storage atau BigQuery.

Migrasi data

Terdapat dua langkah untuk memigrasikan data Hive dari cluster sumber lokal atau berbasis cloud lainnya ke BigQuery:

  1. Menyalin data dari cluster sumber ke Cloud Storage
  2. Memuat data dari Cloud Storage ke BigQuery.

Bagian berikut membahas tentang memigrasi data Hive, memvalidasi data yang dimigrasikan, dan menangani migrasi data yang diserap secara terus-menerus. Contoh ditulis untuk tabel non-ACID.

Data kolom partisi

Di Hive, data dalam tabel berpartisi disimpan dalam struktur direktori. Setiap partisi tabel dikaitkan dengan nilai tertentu kolom partisi. File data itu sendiri tidak berisi data kolom partisi. Gunakan perintah SHOW PARTITIONS untuk mencantumkan berbagai partisi dalam tabel berpartisi.

Contoh di bawah menunjukkan bahwa tabel Hive sumber dipartisi pada kolom joining_date dan department. File data dalam tabel ini tidak berisi data apa pun yang terkait dengan kedua kolom ini.

hive> SHOW PARTITIONS corp.employees_partitioned
joining_date="2018-10-01"/department="HR"
joining_date="2018-10-01"/department="Analyst"
joining_date="2018-11-01"/department="HR"

Salah satu cara untuk menyalin kolom ini adalah dengan mengonversi tabel berpartisi menjadi tabel yang tidak dipartisi sebelum dimuat ke BigQuery:

  1. Buat tabel yang tidak dipartisi dengan skema yang mirip dengan tabel berpartisi.
  2. Muat data ke tabel yang tidak dipartisi dari tabel berpartisi sumber.
  3. Salin file data ini dalam tabel bertahap yang tidak dipartisi ke Cloud Storage.
  4. Muat data ke BigQuery dengan perintah bq load dan berikan nama kolom partisi jenis TIMESTAMP atau DATE, jika ada, sebagai argumen time_partitioning_field.

Salin data ke Cloud Storage

Langkah pertama dalam migrasi data adalah menyalin data ke Cloud Storage. Gunakan Hadoop DistCp untuk menyalin data dari cluster lokal atau cluster cloud lainnya ke Cloud Storage. Simpan data Anda dalam bucket di region atau multi-region yang sama dengan set data tempat Anda ingin menyimpan data di BigQuery. Misalnya, jika Anda ingin menggunakan set data BigQuery yang sudah ada sebagai tujuan yang berada di region Tokyo, Anda harus memilih bucket regional Cloud Storage di Tokyo untuk menyimpan data.

Setelah memilih lokasi bucket Cloud Storage, Anda dapat menggunakan perintah berikut untuk mencantumkan semua file data yang ada di lokasi tabel Hive employees:

> hdfs dfs -ls hdfs://demo_cluster/user/hive/warehouse/corp/employees
hdfs://demo_cluster/user/hive/warehouse/corp/employees/000000_0
hdfs://demo_cluster/user/hive/warehouse/corp/employees/000001_0
hdfs://demo_cluster/user/hive/warehouse/corp/employees/000002_0

Salin semua file dari atas ke Cloud Storage:

> hadoop distcp
hdfs://demo_cluster/user/hive/warehouse/corp/employees
gs://hive_data/corp/employees

Perlu diperhatikan bahwa Anda akan dikenai biaya penyimpanan data di Cloud Storage sesuai dengan Harga penyimpanan data.

Mungkin ada direktori staging yang menyimpan file perantara yang dibuat untuk tugas kueri. Anda harus memastikan direktori tersebut sudah dihapus sebelum menjalankan perintah bq load.

Memuat data

BigQuery mendukung pemuatan data batch dalam berbagai format dari Cloud Storage. Pastikan set data BigQuery yang menjadi tujuan pemuatan data Anda sudah ada sebelum membuat tugas pemuatan.

Perintah berikut menampilkan data yang disalin dari Hive untuk tabel non-ACID:

> gsutil ls gs://hive_data/corp/employees/
gs://hive-migration/corp/employees/
gs://hive-migration/corp/employees/000000_0
gs://hive-migration/corp/employees/000001_0
gs://hive-migration/corp/employees/000002_0

Untuk memuat data Hive ke BigQuery, gunakan perintah bq load. Anda dapat menggunakan karakter pengganti * di URL untuk memuat data dari beberapa file yang memiliki awalan objek yang sama. Misalnya, gunakan perintah berikut untuk memuat semua file yang memiliki gs://hive_data/corp/employees/ awalan yang sama:

bq load --source_format=AVRO corp.employees gs://hive_data/corp/employees/*

Tugas dapat memerlukan waktu lama untuk diselesaikan, maka Anda dapat menjalankannya secara asinkron dengan menetapkan flag --sync ke False. Menjalankan perintah bq load akan menghasilkan ID tugas dari tugas pemuatan yang dibuat, sehingga Anda dapat menggunakan perintah ini untuk memeriksa status tugas. Data ini mencakup detail seperti jenis tugas, status tugas, dan pengguna yang menjalankan tugas.

Lakukan polling setiap status tugas pemuatan menggunakan ID tugasnya masing-masing dan periksa apakah ada tugas yang gagal dengan error. Jika terjadi kegagalan, BigQuery akan menggunakan pendekatan "Semua atau Tidak Ada" saat memuat data ke dalam tabel. Anda dapat mencoba mengatasi error dan membuat ulang tugas pemuatan lain dengan aman. Untuk mengetahui informasi lebih lanjut, lihat memecahkan masalah error.

Pastikan Anda memiliki kuota tugas pemuatan yang cukup per tabel dan project. Jika Anda melebihi kuota, tugas pemuatan akan gagal dengan error quotaExceeded.

Perlu diperhatikan bahwa Anda tidak dikenai biaya untuk operasi pemuatan guna memuat data ke BigQuery dari Cloud Storage. Setelah data dimuat ke BigQuery, data tersebut akan dikenai harga penyimpanan BigQuery. Ketika tugas pemuatan berhasil selesai, Anda dapat menghapus file yang tersisa di Cloud Storage untuk menghindari timbulnya biaya penyimpanan data yang berlebihan.

Validasi

Setelah berhasil memuat data, Anda dapat memvalidasi data yang dimigrasikan dengan membandingkan jumlah baris di Hive dan tabel BigQuery. Lihat informasi tabel untuk mendapatkan detail tentang tabel BigQuery, seperti jumlah baris, jumlah kolom, kolom partisi, atau kolom pengelompokan. Untuk validasi tambahan, sebaiknya coba Alat validasi data.

Penyerapan berkelanjutan

Jika Anda terus menyerap data ke dalam tabel Hive, lakukan migrasi awal, lalu migrasikan hanya perubahan data inkremental ke BigQuery. Membuat skrip yang berjalan berulang kali untuk menemukan dan memuat data baru adalah hal yang umum. Ada banyak cara untuk melakukannya, dan bagian berikut menjelaskan satu pendekatan yang memungkinkan.

Anda dapat memantau progres migrasi di tabel database Cloud SQL, yang disebut sebagai tabel pelacakan di bagian berikut. Selama migrasi pertama kali dijalankan, simpan progresnya di tabel pelacakan. Untuk menjalankan migrasi berikutnya, gunakan informasi tabel pelacakan untuk mendeteksi apakah ada data tambahan yang telah diserap dan dapat dimigrasikan ke BigQuery.

Pilih kolom ID jenis INT64, TIMESTAMP, atau DATE untuk membedakan data inkremental. Ini disebut sebagai kolom inkremental.

Tabel berikut adalah contoh tabel tanpa partisi yang menggunakan jenis TIMESTAMP untuk kolom inkrementalnya:

+-----------------------------+-----------+-----------+-----------+-----------+
| timestamp_identifier        | column_2  | column_3  | column_4  | column_5  |
+-----------------------------+-----------+-----------+-----------+-----------+
| 2018-10-10 21\:56\:41       |           |           |           |           |
| 2018-10-11 03\:13\:25       |           |           |           |           |
| 2018-10-11 08\:25\:32       |           |           |           |           |
| 2018-10-12 05\:02\:16       |           |           |           |           |
| 2018-10-12 15\:21\:45       |           |           |           |           |
+-----------------------------+-----------+-----------+-----------+-----------+

Tabel berikut adalah contoh tabel yang dipartisi pada kolom jenis DATE partition_column. Ini memiliki kolom inkremental jenis bilangan bulat int_identifier di setiap partisi.

+---------------------+---------------------+----------+----------+-----------+
| partition_column    | int_identifier      | column_3 | column_4 | column_5  |
+---------------------+---------------------+----------+----------+-----------+
| 2018-10-01          | 1                   |          |          |           |
| 2018-10-01          | 2                   |          |          |           |
| ...                 | ...                 |          |          |           |
| 2018-10-01          | 1000                |          |          |           |
| 2018-11-01          | 1                   |          |          |           |
| 2018-11-01          | 2                   |          |          |           |
| ...                 | ...                 |          |          |           |
| 2018-11-01          | 2000                |          |          |           |
+---------------------+---------------------+----------+----------+-----------+

Bagian berikut menjelaskan tentang memigrasi data Hive berdasarkan apakah data tersebut dipartisi atau tidak, dan apakah data tersebut memiliki kolom inkremental atau tidak.

Tabel yang tidak dipartisi tanpa kolom inkremental

Dengan asumsi tidak ada pemadatan file di Hive, Hive akan membuat file data baru saat menyerap data baru. Saat pengujian pertama dijalankan, simpan daftar file di tabel pelacakan dan selesaikan migrasi awal tabel Hive dengan menyalin file ini ke Cloud Storage dan memuatnya ke BigQuery.

> hdfs dfs -ls hdfs://demo_cluster/user/hive/warehouse/corp/employees
Found 3 items
hdfs://demo_cluster/user/hive/warehouse/corp/employees/000000_0
hdfs://demo_cluster/user/hive/warehouse/corp/employees/000001_0
hdfs://demo_cluster/user/hive/warehouse/corp/employees/000002_0

Setelah migrasi awal, beberapa data akan diserap di Hive. Anda hanya perlu memigrasikan data inkremental ini ke BigQuery. Pada proses migrasi berikutnya, cantumkan kembali file data dan bandingkan dengan informasi dari tabel pelacakan untuk mendeteksi file data baru yang belum dimigrasikan.

> hdfs dfs -ls hdfs://demo_cluster/user/hive/warehouse/corp/employees
Found 5 items
hdfs://demo_cluster/user/hive/warehouse/corp/employees/000000_0
hdfs://demo_cluster/user/hive/warehouse/corp/employees/000001_0
hdfs://demo_cluster/user/hive/warehouse/corp/employees/000002_0
hdfs://demo_cluster/user/hive/warehouse/corp/employees/000003_0
hdfs://demo_cluster/user/hive/warehouse/corp/employees/000004_0

Dalam contoh ini, dua file baru ada di lokasi tabel. Migrasikan data tersebut dengan menyalin file data baru ini ke Cloud Storage dan memuatnya ke tabel BigQuery yang ada.

Tabel yang tidak dipartisi dengan kolom inkremental

Dalam hal ini, Anda dapat menggunakan nilai maksimum kolom inkremental untuk menentukan apakah ada data baru yang ditambahkan. Saat melakukan migrasi awal, buat kueri tabel Hive untuk mengambil nilai maksimum kolom inkremental dan menyimpannya di tabel pelacakan:

hive> SELECT MAX(timestamp_identifier) FROM corp.employees;
2018-12-31 22:15:04

Pada proses migrasi berikutnya, ulangi kueri yang sama lagi untuk mengambil nilai maksimum saat ini kolom inkremental dan bandingkan dengan nilai maksimum sebelumnya dari tabel pelacakan untuk memeriksa apakah ada data inkremental:

hive> SELECT MAX(timestamp_identifier) FROM corp.employees;
2019-01-04 07:21:16

Jika nilai maksimum saat ini lebih besar daripada nilai maksimum sebelumnya, hal ini menunjukkan bahwa data inkremental telah diserap ke dalam tabel Hive seperti dalam contoh. Untuk memigrasikan data inkremental, buat tabel staging dan hanya muat data inkremental ke dalamnya.

hive> CREATE TABLE stage_employees LIKE corp.employees;
hive> INSERT INTO TABLE stage_employees SELECT * FROM corp.employees WHERE timestamp_identifier>"2018-12-31 22:15:04" and timestamp_identifier<="2019-01-04 07:21:16"

Migrasikan tabel staging dengan mencantumkan file data HDFS, menyalinnya ke Cloud Storage, dan memuatnya ke tabel BigQuery yang ada.

Tabel berpartisi tanpa kolom inkremental

Penyerapan data ke tabel berpartisi dapat membuat partisi baru, menambahkan data inkremental ke partisi yang ada, atau melakukan keduanya. Dalam skenario ini, Anda dapat mengidentifikasi partisi yang diupdate tersebut, tetapi tidak dapat dengan mudah mengidentifikasi data yang telah ditambahkan ke partisi yang ada ini karena tidak ada kolom inkremental yang dapat dibedakan. Opsi lainnya adalah mengambil dan mengelola snapshot HDFS, tetapi snapshot dapat menimbulkan masalah performa pada Hive sehingga umumnya dinonaktifkan.

Saat memigrasikan tabel untuk pertama kalinya, jalankan perintah SHOW PARTITIONS dan simpan informasi tentang berbagai partisi di tabel pelacakan.

hive> SHOW PARTITIONS corp.employees
partition_column=2018-10-01
partition_column=2018-11-01

Output di atas menunjukkan bahwa tabel employees memiliki dua partisi. Versi tabel pelacakan yang disederhanakan disediakan di bawah ini untuk menunjukkan cara informasi ini dapat disimpan.

partition_information file_path gcs_copy_status gcs_file_path bq_job_id ...
partition_column =2018-10-01
partition_column =2018-11-01

Pada operasi migrasi berikutnya, jalankan perintah SHOW PARTITIONS kembali untuk mencantumkan semua partisi dan membandingkannya dengan informasi partisi dari tabel pelacakan untuk memeriksa apakah ada partisi baru yang belum dimigrasikan.

hive> SHOW PARTITIONS corp.employees
partition_column=2018-10-01
partition_column=2018-11-01
partition_column=2018-12-01
partition_column=2019-01-01

Jika ada partisi baru yang diidentifikasi seperti dalam contoh, buat tabel staging dan hanya muat partisi baru ke dalamnya dari tabel sumber. Migrasikan tabel staging dengan menyalin file ke Cloud Storage dan memuatnya ke tabel BigQuery yang ada.

Tabel berpartisi dengan kolom inkremental

Dalam skenario ini, tabel Hive dipartisi dan kolom inkremental ada di setiap partisi. Peningkatan data yang terus diserap pada nilai kolom ini. Di sini, Anda dapat memigrasikan partisi baru seperti yang dijelaskan di bagian sebelumnya dan juga dapat memigrasikan data inkremental yang telah diserap ke dalam partisi yang ada.

Saat memigrasikan tabel untuk pertama kalinya, simpan nilai minimum dan maksimum kolom inkremental di setiap partisi bersama dengan informasi tentang partisi tabel dalam tabel pelacakan.

hive> SHOW PARTITIONS corp.employees
partition_column=2018-10-01
partition_column=2018-11-01

hive> SELECT MIN(int_identifier),MAX(int_identifier) FROM corp.employees WHERE partition_column="2018-10-01";
1 1000

hive> SELECT MIN(int_identifier),MAX(int_identifier) FROM corp.employees WHERE partition_column="2018-11-01";
1 2000

Output di atas menunjukkan bahwa tabel karyawan memiliki dua partisi serta nilai minimum dan maksimum kolom inkremental di setiap partisi. Versi tabel pelacakan yang disederhanakan disediakan di bawah ini untuk menunjukkan cara informasi ini dapat disimpan.

partition_information inc_col_min inc_col_max file_path gcs_copy_status ...
partition_column =2018-10-01 1 1.000
partition_column =2018-11-01 1 2.000

Pada operasi berikutnya, jalankan kueri yang sama untuk mengambil nilai maksimum saat ini di setiap partisi dan membandingkannya dengan nilai maksimum sebelumnya dari tabel pelacakan.

hive> SHOW PARTITIONS corp.employees
partition_column=2018-10-01
partition_column=2018-11-01
partition_column=2018-12-01
partition_column=2019-01-01

hive> SELECT MIN(int_identifier),MAX(int_identifier) FROM corp.employees WHERE partition_column="2018-10-01";

Dalam contoh ini, dua partisi baru telah diidentifikasi dan beberapa data inkremental telah diserap dalam partition_column=2018-10-01 partisi yang ada. Jika ada data inkremental, buat tabel staging, muat data inkremental saja ke tabel staging, salin data ke Cloud Storage, dan muat data ke tabel BigQuery yang ada.

Setelan keamanan

BigQuery menggunakan IAM untuk mengelola akses ke resource. Peran bawaan BigQuery memberikan akses terperinci untuk layanan tertentu, dan dimaksudkan untuk mendukung kasus penggunaan umum dan pola kontrol akses. Anda dapat menggunakan peran khusus untuk memberikan akses yang lebih mendetail dengan menyesuaikan sekumpulan izin.

Kontrol akses di tabel dan set data menentukan operasi yang boleh dilakukan oleh pengguna, grup, dan akun layanan pada tabel, tampilan, dan set data. Tampilan yang diotorisasi memungkinkan Anda membagikan hasil kueri dengan pengguna dan grup tertentu tanpa memberi mereka akses ke data sumber yang mendasarinya. Dengan keamanan level baris dan keamanan level kolom, Anda dapat membatasi siapa yang dapat mengakses baris atau kolom mana dalam tabel. Penyamaran data memungkinkan Anda mengaburkan data kolom secara selektif untuk sekelompok pengguna, sambil tetap mengizinkan akses ke kolom tersebut.

Saat menerapkan kontrol akses, Anda dapat memberikan akses kepada pengguna dan grup berikut:

  • Pengguna melalui email: memberikan akses ke set data kepada Akun Google perorangan
  • Kelompokkan menurut email: memberikan akses ke set data kepada semua anggota grup Google
  • Domain: memberikan akses ke set data kepada semua pengguna dan grup di domain Google
  • Semua Pengguna Terautentikasi: memberi semua pemegang Akun Google akses ke set data (menjadikan set data bersifat publik)
  • Pemilik Project: memberi semua pemilik project akses ke set data
  • Viewer Project: memberi semua viewer project akses ke set data
  • Editor Project: memberi semua editor project akses ke set data
  • Tampilan yang Diberi Otorisasi: memberikan akses tampilan ke set data

Perubahan pipeline data

Bagian berikut membahas cara mengubah pipeline data saat Anda bermigrasi dari Hive ke BigQuery.

Sqoop

Jika pipeline yang ada menggunakan Sqoop untuk mengimpor data ke HDFS atau Hive untuk diproses, ubah tugas untuk mengimpor data ke Cloud Storage.

Jika Anda mengimpor data ke HDFS, pilih salah satu hal berikut:

Jika Anda ingin Sqoop mengimpor data ke Hive yang berjalan di Google Cloud, arahkan ke tabel Hive secara langsung dan gunakan Cloud Storage sebagai warehouse Hive, bukan HDFS. Untuk melakukannya, tetapkan hive.metastore.warehouse.dir properti ke bucket Cloud Storage.

Anda dapat menjalankan tugas Sqoop tanpa mengelola cluster Hadoop menggunakan Dataproc untuk mengirimkan tugas Sqoop guna mengimpor data ke BigQuery.

Spark SQL dan HiveQL

Penerjemah SQL batch atau penerjemah SQL interaktif dapat menerjemahkan Spark SQL atau HiveQL ke GoogleSQL secara otomatis.

Jika tidak ingin memigrasikan Spark SQL atau HiveQL ke BigQuery, Anda dapat menggunakan Dataproc atau konektor BigQuery dengan Apache Spark.

ETL Hive

Jika sudah ada tugas ETL di Hive, Anda dapat mengubahnya dengan cara berikut untuk memigrasikannya dari Hive:

  • Konversikan tugas ETL Hive menjadi tugas BigQuery dengan menggunakan penerjemah SQL batch.
  • Gunakan Apache Spark untuk membaca dan menulis ke BigQuery menggunakan konektor BigQuery. Anda dapat menggunakan Dataproc untuk menjalankan tugas Spark dengan cara yang hemat biaya dengan bantuan cluster sementara.
  • Tulis ulang pipeline Anda menggunakan SDK Apache Beam dan jalankan di Dataflow.
  • Gunakan Apache Beam SQL untuk menulis ulang pipeline Anda.

Untuk mengelola pipeline ETL, Anda dapat menggunakan Cloud Composer (Apache Airflow) dan Template Alur Kerja Dataproc. Cloud Composer menyediakan alat untuk mengonversi alur kerja Oozie menjadi alur kerja Cloud Composer.

Dataflow

Jika Anda ingin memindahkan pipeline ETL Hive ke layanan cloud yang terkelola sepenuhnya, pertimbangkan untuk menulis pipeline data menggunakan Apache Beam SDK dan menjalankannya di Dataflow.

Dataflow adalah layanan terkelola untuk menjalankan pipeline pemrosesan data. Ini akan menjalankan program yang ditulis menggunakan framework open source Apache Beam. Apache Beam adalah model pemrograman terpadu yang memungkinkan Anda mengembangkan pipeline streaming dan batch.

Jika pipeline data Anda adalah perpindahan data standar, Anda dapat menggunakan template Dataflow untuk membuat pipeline Dataflow dengan cepat tanpa perlu menulis kode. Anda dapat merujuk ke template yang disediakan Google ini yang dapat Anda gunakan untuk membaca file teks dari Cloud Storage, menerapkan transformasi, dan menulis hasilnya ke tabel BigQuery.

Untuk lebih menyederhanakan pemrosesan data, Anda juga dapat mencoba Beam SQL yang memungkinkan Anda memproses data menggunakan pernyataan seperti SQL.