Sie können Metadaten von einem Dataproc Metastore-Dienst zu einem Apache Iceberg REST-Katalogendpunkt oder einem Hive-Katalogendpunkt migrieren, der auf einem grenzenlosen Lakehouse basiert. Diese Migration hilft Ihnen, auf offene Tabellenformate umzustellen und den Katalogzugriff über mehrere Analyse-Engines hinweg zu vereinheitlichen.
Anwendungsfälle
- Serverlose Modernisierung: Wechsel von einem herkömmlichen Hive Metastore (HMS) zu einem automatisch skalierenden, verwalteten Katalog, um den Verwaltungsaufwand für den Metastore zu reduzieren.
- Zusammenarbeit mit mehreren Engines: Daten können über verschiedene Engines hinweg freigegeben werden, darunter Apache Spark, Apache Flink, Apache Hive und BigQuery. So können Data Scientists und Analysten gleichzeitig an denselben Tabellen arbeiten, ohne dass Dateien dupliziert werden müssen.
- Direkte BigQuery-Einbindung: Open-Source-Tabellen direkt über BigQuery abfragen.
- Einheitliche Governance: Konsolidieren Sie Metadaten in einer einzigen verlässlichen Quelle für die Datenerkennung und die konsistente Durchsetzung von Richtlinien.
- Moderne Tabellenformate: Verwenden Sie offene Formate wie Apache Iceberg und behalten Sie gleichzeitig die Kompatibilität mit Ihren vorhandenen Hive-Arbeitslasten bei.
Hinweis
- Achten Sie darauf, dass ein aktiver Dataproc Metastore-Dienst als Migrationsquelle vorhanden ist.
- Achten Sie darauf, dass der Ziel-Hive-Katalog oder der Iceberg-Katalog vorhanden ist und die Cloud Storage-Buckets oder -Pfade enthält, in denen sich die Daten und Metadaten Ihrer Quelltabelle befinden (z. B. der Dataproc Metastore-Warehouse-Bucket, z. B.
gs://gcs-your-project-name-0825d7b3-0627-4637-8fd0-cc6271d00eb4/hive-warehouse).Wenn der Zielkatalog den Datenspeicherort nicht enthält, schlägt die Tabellenmigration 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 Lakehouse Hive-Katalog erstellen. - Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit 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, 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.
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 nicht der Dienst-Artefakt-Bucket verwendet wird): Storage-Objekt-Administrator (
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 der 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 Befehl
gcloud metastore services migrations startaus oder rufen Sie die MethodestartMigrationfür Ihren Dataproc Metastore-Dienst auf, um die Migration zu starten. - Status abfragen: Überwachen Sie den Fortschritt der Migration mit dem Befehl
gcloud metastore services migrations describeoder durch Abfragen 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 verifizieren.
Migration ausführen
Wenn Sie eine Migration ausführen möchten, lösen Sie den Migrationsprozess aus und überwachen dann den Fortschritt.
Migration starten
Verwenden Sie die Google Cloud Console, die gcloud CLI oder die REST API, um die Metadatenmigration für einen Dataproc Metastore-Dienst auszulösen.
Console
Rufen Sie in der Google Cloud Console die Seite Dataproc Metastore auf.
Klicken Sie in der Liste der Metastore-Dienste auf den Namen des Dienstes, den Sie migrieren möchten.
Klicken Sie auf der Seite mit den Dienstdetails in der oberen Navigationsleiste auf Zu Lakehouse migrieren.
Geben Sie unter Migrationsname einen Anzeigenamen für die Migration ein.
Wählen Sie für Migrationstyp die Option Backfill-Migration aus, um die Migration durchzuführen, oder Probelauf, um die Migration zu validieren, ohne Metadaten in den Zielkatalog zu schreiben.
Konfigurieren Sie die Zieleinstellungen:
- Berichte: (Optional) Wählen Sie den Cloud Storage-Pfad zum Speichern des Migrationsstatusberichts aus. Wenn nichts angegeben ist, wird der Bericht im Artefakt-Bucket Ihres Dataproc Metastore-Dienstes generiert.
- Konfliktbehandlung: Wählen Sie aus, ob doppelte Datenbankeinträge übersprungen oder überschrieben werden sollen.
Wählen Sie unter Ziel die Katalogtypen aus, zu denen Sie migrieren möchten: Iceberg-REST-Katalogendpunkt oder Hive-Metastore. Sie können zu einem oder beiden Katalogen gleichzeitig migrieren, je nachdem, welche Art von Tabellen Sie aus Ihrer Quelldatenbank migrieren müssen.
Wenn Sie zum Iceberg-REST-Katalog migrieren:
- Wählen Sie unter Projekt das Projekt aus, das den Katalog enthält, zu dem Sie migrieren möchten.
- Wählen Sie unter Iceberg-REST-Katalog den Katalog aus, zu dem Sie migrieren möchten, oder klicken Sie auf Katalog erstellen, um einen neuen Katalog zu erstellen.
Wenn Sie zum Hive-Katalog migrieren:
- Wählen Sie unter Projekt das Projekt aus, das den Katalog enthält, zu dem Sie migrieren möchten.
- Wählen Sie unter Hive-Katalog den Katalog aus, zu dem Sie migrieren möchten, oder klicken Sie auf Katalog erstellen, um einen neuen Katalog zu erstellen.
Klicken Sie auf Migration beginnen.
Sie werden automatisch zum Tab Migrationen weitergeleitet. Unter Verwaltete Migrationen wird Ihre Migration aufgeführt. Der Status wird bis zum Abschluss der Migration aktualisiert.
gcloud
Führen Sie den Befehl gcloud metastore
services migrations
start aus, um die Migration mit gcloud zu starten:
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
Ersetzen Sie Folgendes:
SERVICE_ID: die ID des Dataproc Metastore-DienstesREGION: die Region des Dataproc Metastore-DienstesPROJECT_ID: Ihre Projekt-ID in Google CloudHIVE_CATALOG_ID: die ID des Hive-ZielkatalogsHIVE_DB_1,HIVE_DB_2: Die Hive-Datenbanken, die migriert werden sollen.ICEBERG_CATALOG_ID: die ID des Iceberg-ZielkatalogsICEBERG_NAMESPACE_1,ICEBERG_NAMESPACE_2: Die zu migrierenden Iceberg-Namespaces.
REST
Wenn Sie die Metadatenmigration mit der REST API auslösen möchten, rufen Sie die Methode startMigration mit einer BigLakeMetastoreMigrationConfig-Konfiguration auf:
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"
Ersetzen Sie Folgendes:
BUCKET_NAME: der Name des Cloud Storage-Bucket für BerichtePATH: der Pfad im Bucket für BerichtePROJECT_ID: Ihre Projekt-ID in Google CloudHIVE_CATALOG_ID: die ID des Hive-ZielkatalogsHIVE_DB_1,HIVE_DB_2: Die Hive-Datenbanken, die migriert werden sollen.ICEBERG_CATALOG_ID: die ID des Iceberg-ZielkatalogsICEBERG_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 abfragen
Die Anfrage startet einen Vorgang mit langer Ausführungszeit und gibt eine eindeutige Migrationsausführungs-ID zurück. Sie können den Fortschritt der Ausführung mit der gcloud-Befehlszeile oder der REST API überwachen:
gcloud
Führen Sie den Befehl gcloud
metastore services migrations
describe aus, um die Migrationsausführung mit gcloud zu beschreiben:
gcloud 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
Wenn Sie den Fortschritt der Ausführung mit der REST API überwachen möchten, rufen Sie die Methode get für diesen Ausführungspfad auf:
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"
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Projekt-ID in Google CloudREGION: 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 Schema MigrationReport in den in reportPath angegebenen Cloud Storage-Zielpfad:
summary.json: Enthält die übergeordnete aggregierteMigrationSummary-Struktur.full_report.json: Enthält einen detaillierten, detaillierteren Migrationsbericht. Weitere Informationen finden Sie unterCatalogReport.
So rufen Sie den Bericht in der Google Cloud Console auf:
Rufen Sie in der Google Cloud Console die Seite Dataproc Metastore auf.
Klicken Sie in der Liste der Metastore-Dienste auf den Anzeigenamen des Dienstes, der den Bericht enthält.
Die Seite Migrationen wird geöffnet.
Wählen Sie unter Verwaltete Migrationen den Namen der Migration aus, die den Bericht enthält.
Die Seite Migrationsdetails wird geöffnet. Dort finden Sie Details zu den migrierten Datenbanken und Tabellen sowie deren Migrationsstatus.
Beschränkungen
- Der Zielkatalog muss die Cloud Storage-Buckets oder -Pfade enthalten, in denen sich die Daten und Metadaten der Quelltabelle 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. Metadatenänderungen an Ihrem Dataproc Metastore-Quelldienst nach der Migration werden nicht automatisch übernommen. Sie müssen die Migration noch einmal ausführen, um den Zielkatalog mit der Quelle zu synchronisieren.
- Die Migration unterliegt den Einschränkungen der Zielkataloge. Wenn eine Dataproc Metastore-Tabelle eine Schemastruktur oder ein Attribut enthält, das vom Zielkatalog nicht unterstützt wird (z. B. komplexe Typen), schlägt die Migration für diese Tabelle fehl.
- Dataproc Metastore-Berechtigungen für Tabellen oder Datenbanken werden nicht zu Lakehouse migriert.
Nächste Schritte
- Weitere Informationen zum Lakehouse-Laufzeitkatalog
- Spark und Hive mit dem Lakehouse-Laufzeitkatalog einrichten
- Iceberg-Tabellen mit Lakehouse-Laufzeitkatalog, Spark und BigQuery abfragen