Memigrasikan metadata dari katalog data eksternal ke tabel katalog REST Lakehouse untuk Apache Iceberg
Dokumen ini menunjukkan cara memigrasikan metadata dari katalog data eksternal ke tabel katalog REST Lakehouse untuk Apache Iceberg. BigQuery Migration Service mendukung migrasi metadata dari metastore eksternal berikut:
- Metastore Apache Hive
- Katalog REST Apache Iceberg
Batasan
- Migrasi metadata dari katalog data eksternal ke tabel katalog REST Lakehouse untuk Apache Iceberg adalah sinkronisasi satu kali. Fitur ini tidak mendukung sinkronisasi berkelanjutan atau berkala, sehingga setiap penulisan yang dilakukan setelah migrasi tidak akan terlihat hingga Anda melakukan migrasi lagi.
- Namespace bertingkat tidak didukung.
- Katalog REST Iceberg hanya mendukung file data Parquet.
- Lakehouse tidak mendukung tabel Apache Iceberg V3.
- Migrasi metadata dari katalog data eksternal ke tabel katalog REST Lakehouse untuk Apache Iceberg hanya mendukung migrasi hingga 10.000 tabel. Jika workload Anda memerlukan pemrosesan lebih dari 10.000 tabel, sebaiknya bagi workload Anda ke beberapa migrasi.
- Migrasi metadata dari katalog data eksternal ke tabel katalog REST Lakehouse untuk Apache Iceberg tidak mendukung penggunaan kebijakan organisasi untuk menerapkan berbagi yang dibatasi domain .
Sebelum memulai
Sebelum dapat memigrasikan metadata dari katalog data eksternal, Anda harus melakukan langkah-langkah di bagian berikut.
Mengaktifkan API
Aktifkan BigLake, BigQuery Data Transfer, BigQuery Migration, Secret Manager, Storage Transfer API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin
(roles/serviceusage.serviceUsageAdmin),
yang berisi izin serviceusage.services.enable. Pelajari cara memberikan
peran.
Agen layanan dibuat saat Anda mengaktifkan Data Transfer API.
Mengonfigurasi izin
- Pengguna atau akun layanan yang membuat transfer harus diberi peran BigQuery Admin (
roles/bigquery.admin). Jika Anda menggunakan akun layanan, akun tersebut hanya digunakan untuk membuat transfer. Agen layanan (P4SA) dibuat saat Data Transfer API diaktifkan.
Untuk memastikan agen layanan memiliki izin yang diperlukan untuk menjalankan transfer Metastore Hive, minta administrator Anda untuk memberikan peran IAM berikut kepada agen layanan di project:
- Storage Transfer Admin (
roles/storagetransfer.admin) - Pelanggan Service Usage (
roles/serviceusage.serviceUsageConsumer) - Storage Admin (
roles/storage.admin) -
Untuk memigrasikan metadata ke katalog runtime Lakehouse (Katalog REST Iceberg atau Katalog Hive):
Admin BigLake (
roles/biglake.admin) -
Untuk memigrasikan metadata ke Metastore Dataproc:
Pemilik Data Metastore Dataproc (
roles/metastore.metadataOwner)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Administrator Anda mungkin juga dapat memberikan izin yang diperlukan kepada agen layanan melalui peran khusus atau peran bawaan lainnya.
- Storage Transfer Admin (
Jika Anda menggunakan akun layanan, berikan peran
roles/iam.serviceAccountTokenCreatorkepada agen layanan dengan perintah berikut:gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com --role roles/iam.serviceAccountTokenCreator
Berikan peran berikut kepada agen layanan Storage Transfer Service (
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com) di project:roles/storage.admin- Jika Anda melakukan migrasi dari lokal/HDFS, Anda juga harus memberikan peran
roles/storagetransfer.serviceAgent.
Anda juga dapat mengonfigurasi izin yang lebih terperinci. Untuk mengetahui informasi selengkapnya, lihat panduan berikut:
Peran dan izin pengguna yang diperlukan
Untuk memastikan agen layanan memiliki izin yang diperlukan untuk membuat, mengubah, dan menjalankan migrasi tabel katalog REST Lakehouse untuk Apache Iceberg, minta administrator Anda untuk memberikan peran IAM berikut kepada agen layanan di pengguna:
- Pengguna Akun Layanan (
roles/iam.serviceAccountUser) - Editor Pengelolaan Migrasi (
roles/bigquerymigration.migrationEditor)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Administrator Anda mungkin juga dapat memberikan izin yang diperlukan kepada agen layanan melalui peran khusus atau peran bawaan lainnya.
Peran dan izin akun layanan yang diperlukan
Untuk memastikan akun layanan yang disediakan pelanggan memiliki izin yang diperlukan untuk membuat, mengubah, dan menjalankan migrasi tabel katalog REST Lakehouse untuk Apache Iceberg, minta administrator Anda untuk memberikan peran IAM berikut kepada akun layanan yang disediakan pelanggan:
-
Akses ke lampiran jaringan:
Admin Jaringan Compute (
roles/compute.networkAdmin) di akun layanan -
Akses ke BigQuery Data Transfer Service:
Admin BigQuery (
roles/bigquery.admin) di akun layanan -
Akses ke resource Lakehouse:
Editor BigLake (
roles/biglake.editor) di akun layanan -
Akses ke secret:
Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor) di secret yang disediakan pelanggan
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Administrator Anda mungkin juga dapat memberikan izin yang diperlukan kepada akun layanan yang disediakan pelanggan melalui peran khusus atau peran bawaan lainnya.
Anda juga harus memberikan peran roles/iam.serviceAccountTokenCreator kepada agen layanan dengan perintah berikut:
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member user:bigquerymigration-management-borg@prod.google.com --role roles/iam.serviceAccountTokenCreator --project PROJECT_ID
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member bigquerymigration-managementworker-borg@prod.google.com --role roles/iam.serviceAccountTokenCreator --project PROJECT_ID
Ganti kode berikut:
SERVICE_ACCOUNT: ID akun layananPROJECT_ID: ID project
Mengonfigurasi secret
Jika Anda melakukan migrasi ke katalog REST Apache Iceberg, Anda harus membuat secret untuk mengotorisasi migrasi. Secret harus diformat dalam format berikut:
{
"client_id": "CLIENT_ID",
"client_secret": "CLIENT_SECRET<",
"polaris_realm": "POLARIS_REALM"
"scope": "SCOPE"
}Ganti kode berikut:
CLIENT_ID: ID klien OAuth2.0CLIENT_SECRET: rahasia klien OAuth2.0POLARIS_REALM: realm untuk katalog Polaris. Kolom ini hanya diperlukan untuk Apache Polaris. Misalnya,FINANCE.SCOPE: (Opsional) cakupan OAuth2.0. Nilai defaultnya adalahPRINCIPAL_ROLE:ALL.
Membuat katalog Lakehouse
Buat katalog Lakehouse. Metadata yang dimigrasikan disimpan di bucket Cloud Storage yang Anda tentukan saat membuat katalog.
Memigrasikan metadata
Untuk memulai migrasi metadata ke tabel katalog REST Iceberg Lakehouse, lakukan hal berikut:
Di Google Cloud konsol, buka halaman Migration > Services.
Di bagian Register or Migrate Open Lakehouse, klik Create migration.
Di bagian Migration configuration, lakukan hal berikut:
- Untuk jenis katalog, pilih katalog eksternal.
Untuk Region, pilih region. Region yang dipilih menentukan tempat orkestrasi migrasi dan transfer data dijalankan. Region ini juga menentukan tempat layanan migrasi menggunakan atau membuat resource apa pun, seperti lampiran jaringan atau secret.
Hanya secret regional yang didukung. Region secret harus cocok dengan region di kolom ini.
Untuk Migration display name, masukkan nama untuk migrasi ini.
Di bagian Source system configuration, lakukan hal berikut:
- Untuk URL, masukkan URL endpoint dasar yang berfungsi sebagai titik entri untuk metastore Apache Iceberg atau Apache Hive.
- Untuk Service account, pilih akun layanan dari daftar. Jika tidak ditentukan, migrasi ini akan berjalan menggunakan kredensial pengguna.
- (Opsional) Untuk Network attachment, pilih lampiran jaringan.
Klik Continue.
Setelah migrasi metadata selesai, metadata dari katalog eksternal Anda akan disimpan di bucket Cloud Storage yang Anda tentukan saat Anda membuat katalog Lakehouse.
Harga
Tidak ada biaya untuk mentransfer metadata ke tabel katalog REST Iceberg Lakehouse. Setelah metadata ditransfer, harga Lakehouse akan berlaku.