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:
- Apache Hive Metastore
- 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 dalam 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 izin serviceusage.services.enable. Jika Anda
membuat project, kemungkinan Anda sudah memiliki izin ini melalui
peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui
peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin).
Pelajari cara memberikan peran.
Agen layanan dibuat saat Anda mengaktifkan Data Transfer API.
Konfigurasikan 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 mengaktifkan Data Transfer API.
Untuk memastikan bahwa agen layanan memiliki izin yang diperlukan untuk menjalankan transfer Hive Metastore, minta administrator untuk memberikan peran IAM berikut kepada agen layanan di project:
- Storage Transfer Admin (
roles/storagetransfer.admin) - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) - Storage Admin (
roles/storage.admin) -
Untuk memigrasikan metadata ke katalog runtime Lakehouse (Iceberg REST Catalog atau Hive Catalog):
Admin BigLake (
roles/biglake.admin) -
Untuk memigrasikan metadata ke Dataproc Metastore:
Pemilik Data Dataproc Metastore (
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.s3ns-system.iam.gserviceaccount.com --role roles/iam.serviceAccountTokenCreator
Berikan peran berikut kepada agen layanan Storage Transfer Service (
project-PROJECT_NUMBER@storage-transfer-service.s3ns-system.iam.gserviceaccount.com) di project:roles/storage.admin- Jika Anda melakukan migrasi dari on-prem/HDFS, Anda juga harus memberikan peran
roles/storagetransfer.serviceAgent.
Anda juga dapat mengonfigurasi izin yang lebih terperinci. Untuk informasi selengkapnya, lihat panduan berikut:
Peran dan izin pengguna yang diperlukan
Untuk memastikan bahwa agen layanan memiliki izin yang diperlukan untuk membuat, mengubah, dan menjalankan tabel katalog REST Lakehouse untuk migrasi Apache Iceberg, minta administrator Anda untuk memberikan peran IAM berikut kepada agen layanan pada pengguna:
- Service Account User (
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 tabel katalog REST Lakehouse untuk migrasi Apache Iceberg, minta administrator Anda untuk memberikan peran IAM berikut kepada akun layanan yang disediakan pelanggan:
-
Akses ke lampiran jaringan:
Compute Network Admin (
roles/compute.networkAdmin) di akun layanan -
Akses ke BigQuery Data Transfer Service:
BigQuery Admin (
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) pada 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 membuat identitas layanan untuk BigQuery Migration Service dan memberikan peran roles/iam.serviceAccountTokenCreator kepadanya.
Untuk membuat identitas layanan, jalankan perintah berikut:
gcloud beta services identity create --service=bigquerymigration.googleapis.com --project=PROJECT_ID
Untuk memberikan peran kepada agen layanan, jalankan perintah berikut:
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bqms.s3ns-system.iam.gserviceaccount.com --role roles/iam.serviceAccountTokenCreator --project PROJECT_ID
Ganti kode berikut:
SERVICE_ACCOUNT: ID akun layanan yang disediakan pelangganPROJECT_ID: the project IDPROJECT_NUMBER: nomor project
Mengonfigurasi secret
Jika Anda melakukan migrasi ke katalog REST Apache Iceberg, Anda harus membuat secret untuk mengizinkan 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: client ID OAuth2.0CLIENT_SECRET: rahasia klien OAuth2.0POLARIS_REALM: realm untuk katalog Polaris. Kolom ini hanya diperlukan untuk Apache Polaris. Contoh,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 konsol Cloud de Confiance , buka halaman Migration > Services.
Di bagian Register or Migrate Open Lakehouse, klik Create migration.
Di bagian Konfigurasi migrasi, lakukan hal berikut:
- Untuk jenis katalog, pilih katalog eksternal.
Untuk Region, pilih region. Region yang dipilih menentukan tempat orkestrasi migrasi dan transfer data dijalankan. Setelan ini juga menentukan tempat layanan migrasi menggunakan atau membuat resource, seperti lampiran jaringan atau rahasia.
Hanya secret regional yang didukung. Region rahasia harus cocok dengan region di kolom ini.
Untuk Nama tampilan migrasi, masukkan nama untuk migrasi ini.
Di bagian Konfigurasi sistem sumber, 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 Lanjutkan.
Setelah migrasi metadata selesai, metadata dari katalog eksternal Anda akan disimpan di bucket Cloud Storage yang Anda tentukan saat membuat katalog Lakehouse.
Harga
Tidak ada biaya untuk mentransfer metadata ke tabel katalog REST Iceberg Lakehouse. Setelah metadata ditransfer, harga Lakehouse berlaku.