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 penulisan apa pun 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 Tanpa Batas 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, jika ada yang belum diaktifkan.
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 Service Usage Admin (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 setelah 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):
BigLake Admin (
roles/biglake.admin)
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 kustom 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) dalam project:roles/storage.admin- Jika Anda bermigrasi dari infrastruktur lokal/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 untuk memberikan peran IAM berikut kepada agen layanan pada pengguna:
- Service Account User (
roles/iam.serviceAccountUser) - Migration Management Editor (
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 kustom 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 untuk memberikan peran IAM berikut ke 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:
BigLake Editor (
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 memberinya peran roles/iam.serviceAccountTokenCreator.
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.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 bermigrasi ke katalog REST Apache Iceberg, Anda harus membuat rahasia untuk mengizinkan migrasi. Rahasia 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 OAuth 2.0CLIENT_SECRET: rahasia klien OAuth 2.0POLARIS_REALM: realm untuk katalog Polaris. Kolom ini hanya diperlukan untuk Apache Polaris. Contoh,FINANCE.SCOPE: (Opsional) cakupan OAuth 2.0. Nilai defaultnya adalahPRINCIPAL_ROLE:ALL.
Membuat katalog Lakehouse
Membuat 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 Google Cloud , 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. Lokasi ini juga menentukan tempat layanan migrasi menggunakan atau membuat resource, seperti lampiran jaringan atau secret.
Hanya secret regional yang didukung. Region secret harus cocok dengan region di kolom ini.
Untuk Nama tampilan migrasi, 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 dijalankan 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 akan berlaku.