Anda dapat memigrasikan metadata dari layanan Dataproc Metastore ke endpoint katalog REST Apache Iceberg atau endpoint katalog Hive, yang dibangun di Lakehouse tanpa batas. Migrasi ini membantu Anda melakukan modernisasi ke format tabel terbuka dan menyatukan akses katalog di beberapa mesin analisis.
Kasus penggunaan
- Modernisasi serverless: Transisi dari Hive Metastore (HMS) konvensional ke katalog terkelola yang diskalakan secara otomatis, yang membantu menghilangkan overhead pengelolaan metastore.
- Kolaborasi multi-mesin: Bagikan data di berbagai mesin—termasuk Apache Spark, Apache Flink, Apache Hive, dan BigQuery—sehingga data scientist dan analis dapat mengerjakan tabel yang sama secara bersamaan tanpa duplikasi file.
- Integrasi BigQuery langsung: Buat kueri tabel open source langsung dari BigQuery.
- Tata kelola terpadu: Gabungkan metadata ke dalam satu sumber tepercaya untuk penemuan data dan penegakan kebijakan yang konsisten.
- Format tabel modern: Gunakan format terbuka seperti Apache Iceberg sambil mempertahankan kompatibilitas dengan workload Hive yang ada.
Sebelum memulai
- Pastikan layanan Dataproc Metastore yang aktif ada sebagai sumber migrasi.
- Pastikan katalog Hive atau katalog Iceberg target ada dan
mencakup bucket Cloud Storage atau jalur tempat data dan metadata tabel sumber Anda berada (misalnya, bucket warehouse Dataproc Metastore, seperti
gs://gcs-your-project-name-0825d7b3-0627-4637-8fd0-cc6271d00eb4/hive-warehouse).Jika katalog tujuan tidak menyertakan lokasi data, migrasi tabel akan gagal karena katalog target tidak dapat mendaftarkan tabel. Untuk pembuatan katalog Iceberg, lihat Menyiapkan endpoint katalog REST Iceberg.
Untuk membuat katalog Hive, lihat Membuat katalog Hive Lakehouse. - Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Lakehouse, Dataproc Metastore APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Verify that billing is enabled for your Google Cloud project.
Enable the Lakehouse, Dataproc Metastore APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk memicu migrasi, minta administrator untuk memberi Anda peran IAM berikut pada layanan Dataproc Metastore:
-
Mulai migrasi:
Dataproc Metastore Editor (
roles/metastore.editor) -
Membuat katalog Hive atau Iceberg:
BigLake Admin (
roles/biglake.admin) -
Memigrasikan metadata ke katalog tujuan menggunakan project target: BigLake Admin (
roles/biglake.admin) di agen layanan Dataproc Metastore (service-PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com). -
Menulis laporan migrasi untuk bucket laporan (jika tidak menggunakan bucket artefak layanan):
Storage Object Admin (
roles/storage.objectAdmin) di agen layanan Dataproc Metastore (service-PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Cara kerja migrasi
Proses migrasi berjalan sebagai berikut:
- Pilih katalog target Anda: Pilih endpoint katalog Hive tujuan atau endpoint katalog REST Apache Iceberg untuk migrasi Anda.
- Memicu migrasi: Jalankan perintah
gcloud metastore services migrations startatau panggil metodestartMigrationdi layanan Dataproc Metastore Anda untuk memulai migrasi. - Polling status: Pantau progres migrasi menggunakan perintah
gcloud metastore services migrations describeatau dengan melakukan polling eksekusi target. - Tinjau laporan: Tinjau laporan JSON mendetail yang ditulis ke jalur Cloud Storage yang Anda tentukan untuk memverifikasi hasilnya.
Menjalankan migrasi
Untuk menjalankan migrasi, Anda memicu proses migrasi, lalu memantau progresnya.
Memulai migrasi
Untuk memicu migrasi metadata di layanan Dataproc Metastore, gunakan
konsol Google Cloud , gcloud CLI, atau REST API.
Konsol
Di konsol Google Cloud , buka halaman Dataproc Metastore.
Dalam daftar layanan metastore, klik nama layanan yang ingin Anda migrasikan.
Di halaman detail layanan, klik Migrate to Lakehouse di menu navigasi atas.
Untuk Migration name, masukkan nama tampilan untuk migrasi Anda.
Untuk Migration type, pilih Backfill migration untuk melakukan migrasi, atau uji coba untuk memvalidasi migrasi tanpa menulis metadata ke katalog tujuan.
Konfigurasikan setelan target:
- Reports: (Opsional) Pilih jalur Cloud Storage untuk menyimpan laporan status migrasi Anda. Jika tidak ditentukan, laporan akan dibuat di bucket artefak layanan Dataproc Metastore Anda.
- Penanganan konflik: Pilih apakah Anda ingin melewati atau menimpa entri database duplikat.
Untuk Destination, pilih jenis katalog yang ingin Anda migrasikan, Iceberg REST catalog endpoint atau Hive metastore. Anda dapat bermigrasi ke satu katalog atau kedua katalog secara bersamaan, bergantung pada jenis tabel yang perlu Anda migrasikan dari database sumber.
Jika Anda bermigrasi ke katalog REST Iceberg:
- Untuk Project, pilih project yang berisi katalog yang ingin Anda migrasikan.
- Untuk Iceberg REST catalog, pilih katalog yang ingin Anda gunakan untuk migrasi, atau klik Create catalog untuk membuat katalog baru.
Jika Anda bermigrasi ke katalog Hive:
- Untuk Project, pilih project yang berisi katalog yang ingin Anda migrasikan.
- Untuk Hive catalog, pilih katalog yang ingin Anda migrasikan, atau klik Create catalog untuk membuat katalog baru.
Klik Mulai Migrasi.
Anda akan otomatis dialihkan ke tab Migrasi. Di bagian Managed Migrations, migrasi Anda akan dicantumkan dan statusnya akan terus diperbarui hingga migrasi selesai.
gcloud
Untuk memulai migrasi menggunakan gcloud, jalankan perintah gcloud metastore
services migrations
start:
gcloud metastore services migrations start SERVICE_ID \
--location=REGION \
--hive-catalog="projects/PROJECT_ID/catalogs/HIVE_CATALOG_ID" \
--hive-databases="HIVE_DB_1,HIVE_DB_2" \
--iceberg-catalog="projects/PROJECT_ID/catalogs/ICEBERG_CATALOG_ID" \
--iceberg-namespaces="ICEBERG_NAMESPACE_1,ICEBERG_NAMESPACE_2" \
--async
Ganti kode berikut:
SERVICE_ID: ID layanan Dataproc MetastoreREGION: region layanan Dataproc MetastorePROJECT_ID: Project ID Google Cloud AndaHIVE_CATALOG_ID: ID katalog Hive tujuanHIVE_DB_1,HIVE_DB_2: database Hive yang akan dimigrasikan.ICEBERG_CATALOG_ID: ID katalog Iceberg tujuanICEBERG_NAMESPACE_1,ICEBERG_NAMESPACE_2: namespace Iceberg yang akan dimigrasikan.
REST
Untuk memicu migrasi metadata menggunakan REST API, panggil metode
startMigration
dengan konfigurasi
BigLakeMetastoreMigrationConfig:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"migrationExecution": {
"biglakeMetastoreMigrationConfig": {
"mode": "BACKFILL",
"dryRun": false,
"reportPath": "gs://BUCKET_NAME/PATH/",
"conflictPolicy": "SKIP",
"hiveConfig": {
"catalog": "projects/PROJECT_ID/catalogs/HIVE_CATALOG_ID",
"databases": ["HIVE_DB_1", "HIVE_DB_2"]
},
"icebergConfig": {
"catalog": "projects/PROJECT_ID/catalogs/ICEBERG_CATALOG_ID",
"namespaces": ["ICEBERG_NAMESPACE_1", "ICEBERG_NAMESPACE_2"]
}
}
}
}' \
"https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/services/SERVICE_ID:startMigration"
Ganti kode berikut:
BUCKET_NAME: nama bucket Cloud Storage untuk laporanPATH: jalur di bucket untuk laporanPROJECT_ID: Project ID Google Cloud AndaHIVE_CATALOG_ID: ID katalog Hive tujuanHIVE_DB_1,HIVE_DB_2: database Hive yang akan dimigrasikan.ICEBERG_CATALOG_ID: ID katalog Iceberg tujuanICEBERG_NAMESPACE_1,ICEBERG_NAMESPACE_2: namespace Iceberg yang akan dimigrasikan.REGION: region layanan Dataproc MetastoreSERVICE_ID: ID layanan Dataproc Metastore
Melakukan polling eksekusi migrasi
Permintaan ini akan memulai operasi yang berjalan lama (LRO) dan menampilkan ID eksekusi migrasi yang unik. Anda dapat memantau progres
operasi menggunakan gcloud CLI atau REST API:
gcloud
Untuk mendeskripsikan eksekusi migrasi menggunakan gcloud, jalankan perintah gcloud
metastore services migrations
describe:
gcloud metastore services migrations describe MIGRATION_EXECUTION_ID \
--service=SERVICE_ID \
--location=REGION
Ganti kode berikut:
MIGRATION_EXECUTION_ID: ID eksekusi migrasi yang ditampilkan di langkah sebelumnyaSERVICE_ID: ID layanan Dataproc MetastoreREGION: region layanan Dataproc Metastore
REST
Untuk memantau progres operasi menggunakan REST API, panggil metode
get
pada jalur eksekusi tersebut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/services/SERVICE_ID/migrationExecutions/MIGRATION_EXECUTION_ID"
Ganti kode berikut:
PROJECT_ID: Project ID Google Cloud AndaREGION: region layanan Dataproc MetastoreSERVICE_ID: ID layanan Dataproc MetastoreMIGRATION_EXECUTION_ID: ID eksekusi migrasi yang ditampilkan di langkah sebelumnya
Laporan migrasi mendetail
Setelah migrasi (pengisian ulang atau uji coba) selesai, alat migrasi akan menulis
dua file laporan JSON mendetail berdasarkan skema
MigrationReport
ke jalur Cloud Storage target yang ditentukan di reportPath:
summary.json: Berisi strukturMigrationSummarygabungan tingkat tinggi.full_report.json: Berisi laporan migrasi yang mendetail dan lebih terperinci. Untuk mengetahui informasi selengkapnya, lihatCatalogReport.
Untuk melihat laporan di konsol Google Cloud , ikuti langkah-langkah berikut:
Di konsol Google Cloud , buka halaman Dataproc Metastore.
Dalam daftar layanan metastore, klik nama tampilan layanan yang berisi laporan.
Halaman Migrations akan terbuka.
Di bagian Managed Migrations, pilih nama migrasi yang berisi laporan.
Halaman Migration details akan terbuka, menampilkan detail tentang database dan tabel yang dimigrasikan serta status migrasinya.
Batasan
- Katalog tujuan harus menyertakan bucket Cloud Storage atau jalur tempat data dan metadata tabel sumber berada (seperti bucket warehouse Dataproc Metastore). Jika katalog target tidak dikonfigurasi dengan lokasi bucket data, katalog tujuan tidak dapat mendaftarkan tabel dan migrasi tabel akan gagal.
- Alat ini hanya mendukung pengisian ulang satu kali. Setiap perubahan metadata pada Dataproc Metastore sumber Anda setelah migrasi tidak akan diterapkan secara otomatis. Anda harus menjalankan ulang migrasi untuk menyinkronkan katalog target dengan sumber Anda.
- Migrasi terikat oleh batasan katalog tujuan. Jika tabel Dataproc Metastore berisi struktur skema atau properti yang tidak didukung oleh katalog target (seperti jenis kompleks), migrasi untuk tabel tertentu tersebut akan gagal.
- Izin Dataproc Metastore untuk tabel atau database tidak dimigrasikan ke Lakehouse.
Langkah berikutnya
- Pelajari lebih lanjut katalog runtime Lakehouse.
- Pelajari cara Menyiapkan Spark dan Hive dengan katalog runtime Lakehouse.
- Pelajari cara Mengkueri tabel Iceberg dengan katalog runtime Lakehouse, Spark, dan BigQuery.