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.

Aktifkan API

Agen layanan dibuat saat Anda mengaktifkan Data Transfer API.

Konfigurasikan izin

  1. 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.
  2. 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:

    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.

  3. Jika Anda menggunakan akun layanan, berikan peran roles/iam.serviceAccountTokenCreator kepada 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
  4. 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:

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:

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 pelanggan
  • PROJECT_ID: the project ID
  • PROJECT_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.0
  • CLIENT_SECRET: rahasia klien OAuth2.0
  • POLARIS_REALM: realm untuk katalog Polaris. Kolom ini hanya diperlukan untuk Apache Polaris. Contoh, FINANCE.
  • SCOPE: (Opsional) cakupan OAuth2.0. Nilai defaultnya adalah PRINCIPAL_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:

  1. Di konsol Cloud de Confiance , buka halaman Migration > Services.

    Buka Layanan migrasi

  2. Di bagian Register or Migrate Open Lakehouse, klik Create migration.

  3. Di bagian Konfigurasi migrasi, lakukan hal berikut:

    1. Untuk jenis katalog, pilih katalog eksternal.
    2. 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.

    3. Untuk Nama tampilan migrasi, masukkan nama untuk migrasi ini.

  4. Di bagian Konfigurasi sistem sumber, lakukan hal berikut:

    1. Untuk URL, masukkan URL endpoint dasar yang berfungsi sebagai titik entri untuk metastore Apache Iceberg atau Apache Hive.
    2. Untuk Service account, pilih akun layanan dari daftar. Jika tidak ditentukan, migrasi ini akan berjalan menggunakan kredensial pengguna.
    3. (Opsional) Untuk Network attachment, pilih lampiran jaringan.
  5. 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.