In diesem Dokument wird beschrieben, wie Sie Metadaten aus einem Dataproc Metastore-Dienst zu einem Apache Iceberg REST Katalog-Endpunkt oder einem Hive Katalog-Endpunkt migrieren, der auf Borderless Lakehouse basiert.
Anwendungsfälle
- Serverlose Modernisierung:Umstellung von einem herkömmlichen Hive-Metastore (HMS) auf einen automatisch skalierbaren, vollständig verwalteten Katalog, wodurch der Betriebsaufwand für die Metastore-Verwaltung entfällt.
- Zusammenarbeit mit mehreren Engines:Ermöglichen Sie die gemeinsame Nutzung von Daten über verschiedene Engines hinweg, darunter Apache Spark, Apache Flink, Apache Hive und BigQuery. So können Data Scientists und Analysten gleichzeitig an denselben Tabellen arbeiten, ohne Dateien zu duplizieren.
- Direkte BigQuery-Integration:Abfragen von Open-Source-Tabellen direkt aus BigQuery mit hoher Leistung.
- Einheitliche Governance:Konsolidieren Sie Metadaten in einer einzigen verlässlichen Datenquelle, um die Datenermittlung zu vereinfachen und Richtlinien einheitlich durchzusetzen.
- Moderne Tabellenformate:Nahtlose Einführung moderner offener Formate wie Apache Iceberg bei gleichzeitiger vollständiger Kompatibilität mit Ihren vorhandenen Hive-Arbeitslasten.
Hinweis
- Achten Sie darauf, dass ein aktiver Dataproc Metastore-Dienst als Migrationsquelle vorhanden ist.
- Achten Sie darauf, dass der Ziel-Hive- oder Iceberg-Katalog vorhanden ist und
die Cloud Storage-Buckets oder -Pfade enthält, in denen sich die Quelldaten und -metadaten befinden (z. B. der Dataproc Metastore
Warehouse-Bucket, wie
gs://gcs-your-project-name-0825d7b3-0627-4637-8fd0-cc6271d00eb4/hive-warehouse).Wenn der Zielkatalog den Datenspeicherort nicht enthält, schlägt die Tabellen migration fehl, da der Zielkatalog die Tabellen nicht registrieren kann. Informationen zum Erstellen eines Iceberg-Katalogs finden Sie unter Iceberg REST-Katalogendpunkt einrichten.
Informationen zum Erstellen eines Hive-Katalogs finden Sie unter Create a Lakehouse Hive catalog. - Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Konto bei Google Cloudhaben, erstellen Sie ein Konto, um die Leistung unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Lakehouse for Apache Iceberg, Dataproc Metastore APIs.
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 for Apache Iceberg, Dataproc Metastore APIs.
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.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für den Dataproc Metastore-Dienst zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Auslösen der Migration benötigen:
-
Migration starten:
Dataproc Metastore-Bearbeiter (
roles/metastore.editor) -
Hive- oder Iceberg-Kataloge erstellen:
BigLake-Administrator (
roles/biglake.admin) -
Metadaten mithilfe eines Zielprojekts zu Zielkatalogen migrieren:
BigLake-Administrator (
roles/biglake.admin) für den Dataproc Metastore-Dienst-Agent (service-PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com). -
Migrationsberichte für den Berichts-Bucket schreiben (wenn Sie nicht den Bucket für Dienstartefakte verwenden):
Storage-Objektadministrator (
roles/storage.objectAdmin) für den Dataproc Metastore-Dienst-Agent (service-PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Funktionsweise einer Migration
Der Migrationsprozess funktioniert so:
- Zielkatalog auswählen: Wählen Sie den Ziel-Hive-Katalogendpunkt oder den Apache Iceberg REST-Katalogendpunkt für Ihre Migration aus.
- Migration auslösen: Führen Sie den
gcloud beta metastore services migrations startBefehl aus oder rufen Sie diestartMigrationMethode für Ihren Dataproc Metastore-Dienst auf, um die Migration zu starten. - Status abrufen: Überwachen Sie den Fortschritt der Migration mit dem
gcloud beta metastore services migrations describeBefehl oder durch Abrufen der Zielausführung. - Berichte prüfen: Prüfen Sie die detaillierten JSON-Berichte, die in den angegebenen Cloud Storage-Pfad geschrieben wurden, um die Ergebnisse zu überprüfen.
Migration ausführen
Um eine Migration auszuführen, lösen Sie den Migrationsprozess aus und überwachen dann den Fortschritt.
Migration starten
Verwenden Sie die gcloud-Befehlszeile oder die REST API, um die Metadatenmigration für einen Dataproc Metastore-Dienst auszulösen.
gcloud
Führen Sie den gcloud beta metastore
services migrations
start
Befehl aus, um die Migration mit gcloud zu starten:
gcloud beta 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
Ersetzen Sie Folgendes:
SERVICE_ID: die ID des Dataproc Metastore-DienstesREGION: die Region des Dataproc Metastore-DienstesPROJECT_ID: Ihre Google Cloud Projekt-IDHIVE_CATALOG_ID: die ID des Ziel-Hive-KatalogsHIVE_DB_1,HIVE_DB_2: die zu migrierenden Hive-Datenbanken.ICEBERG_CATALOG_ID: die ID des Ziel-Iceberg-KatalogsICEBERG_NAMESPACE_1,ICEBERG_NAMESPACE_2: die zu migrierenden Iceberg-Namespaces.
REST
Rufen Sie die
startMigration
Methode mit einer
BigLakeMetastoreMigrationConfig
Konfiguration auf, um die Metadatenmigration mit der REST API auszulösen:
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/v1beta/projects/PROJECT_ID/locations/REGION/services/SERVICE_ID:startMigration"
Ersetzen Sie Folgendes:
BUCKET_NAME: der Name des Cloud Storage-Bucket für BerichtePATH: der Pfad im Bucket für BerichtePROJECT_ID: Ihre Google Cloud Projekt-IDHIVE_CATALOG_ID: die ID des Ziel-Hive-KatalogsHIVE_DB_1,HIVE_DB_2: die zu migrierenden Hive-Datenbanken.ICEBERG_CATALOG_ID: die ID des Ziel-Iceberg-KatalogsICEBERG_NAMESPACE_1,ICEBERG_NAMESPACE_2: die zu migrierenden Iceberg-Namespaces.REGION: die Region des Dataproc Metastore-DienstesSERVICE_ID: die ID des Dataproc Metastore-Dienstes
Migrationsausführung abrufen
Die Anfrage startet einen Vorgang mit langer Ausführungszeit
(LRO) und gibt eine eindeutige Migrationsausführungs-ID zurück. Sie können den Fortschritt Ihrer Ausführung mit der gcloud-Befehlszeile oder der REST API überwachen:
gcloud
Führen Sie den gcloud beta
metastore services migrations
describe
Befehl aus, um die Migrationsausführung mit gcloud zu beschreiben:
gcloud beta metastore services migrations describe MIGRATION_EXECUTION_ID \
--service=SERVICE_ID \
--location=REGION
Ersetzen Sie Folgendes:
MIGRATION_EXECUTION_ID: die ID der Migrationsausführung, die im vorherigen Schritt zurückgegeben wurdeSERVICE_ID: die ID des Dataproc Metastore-DienstesREGION: die Region des Dataproc Metastore-Dienstes
REST
Rufen Sie die
get
Methode für diesen Ausführungspfad auf, um den Fortschritt Ihrer Ausführung mit der REST API zu überwachen:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://metastore.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/services/SERVICE_ID/migrationExecutions/MIGRATION_EXECUTION_ID"
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Google Cloud Projekt-IDREGION: die Region des Dataproc Metastore-DienstesSERVICE_ID: die ID des Dataproc Metastore-DienstesMIGRATION_EXECUTION_ID: die ID der Migrationsausführung, die im vorherigen Schritt zurückgegeben wurde
Detaillierter Migrationsbericht
Nach Abschluss der Migration (Backfill oder Probelauf) schreibt das Migrationstool zwei detaillierte JSON-Berichtsdateien basierend auf dem MigrationReport Schema in den in reportPath angegebenen Cloud Storage-Zielpfad:
summary.json: Enthält die aggregierteMigrationSummaryStruktur auf hoher Ebene.full_report.json: Enthält einen detaillierten, granulareren Migrationsbericht. Weitere Informationen finden Sie unterCatalogReport.
Beschränkungen
- Der Zielkatalog muss die Cloud Storage-Buckets oder Pfade enthalten, in denen sich die Quelldaten und -metadaten befinden (z. B. der Dataproc Metastore-Warehouse-Bucket). Wenn der Zielkatalog nicht mit dem Speicherort des Daten-Buckets konfiguriert ist, kann der Zielkatalog die Tabellen nicht registrieren und die Tabellenmigration schlägt fehl.
- Das Tool unterstützt nur einen einmaligen Backfill. Änderungen an den Metadaten in Ihrem Dataproc Metastore nach der Migration werden nicht automatisch weitergegeben. Sie müssen die Migration noch einmal ausführen, um den Zielkatalog mit der Quelle zu synchronisieren.
- Die Migration unterliegt den Beschränkungen der Zielkataloge. Wenn eine Dataproc Metastore-Tabelle eine Schemastruktur oder -eigenschaft enthält, die vom Zielkatalog nicht unterstützt wird (z. B. komplexe Typen), schlägt die Migration für diese bestimmte Tabelle fehl.
- Dataproc Metastore-Berechtigungen für Tabellen oder Datenbanken werden nicht zu Lakehouse migriert.
Nächste Schritte
- Weitere Informationen zum Lakehouse-Laufzeit katalog.
- Informationen zum Einrichten von Spark und Hive mit dem Lakehouse Laufzeitkatalog.
- Informationen zum Abfragen von Iceberg-Tabellen mit dem Lakehouse-Laufzeitkatalog, Spark und BigQuery