Dataproc Metastore-Metadaten in den BigQuery-Metastore migrieren

In diesem Dokument wird beschrieben, wie Sie das BigQuery-Metastore-Migrationstool verwenden, um Datenbank-, Tabellen- und Partitionsmetadaten aus einem Dataproc Metastore-Dienst in den BigQuery-Metastore zu verschieben.

Hinweise

  1. Aktivieren Sie die Abrechnung für Ihr Google Cloud -Projekt. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist
  2. Aktivieren Sie die BigQuery- und Dataflow APIs.

    APIs aktivieren

  3. Optional: Weitere Informationen zu folgenden Themen:

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen des Migrationstools benötigen:

  • Datenbanken, Tabellen und Partitionen in BigQuery erstellen: BigQuery-Dateneditor (roles/bigQuery.dataEditor) im Dataflow-Dienstkonto, in dem der Migrationsjob ausgeführt wird.
  • Gewähren Sie Lesezugriff auf Dataproc Metastore-Metadaten über einen gRPC-Endpunkt: Rolle „Metadaten-Betrachter“ (roles/metastore.metadataViewer) für das Dataflow-Dienstkonto, über das der Migrationsjob ausgeführt wird.

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 des Migrationstools

Das Migrationstool startet einen Dataflow-Job, der Metadaten aus dem Dataproc Metastore extrahiert und in den BigQuery Metastore aufnimmt.

Sie können nicht direkt über den BigQuery-Metastore auf Dataproc Metastore-Daten zugreifen. Dieser Migrationsprozess ist erforderlich, um Arbeitslasten oder Jobs auf vorhandenen Metadaten auszuführen. Wenn Sie dieses Tool nicht verwenden, müssen Sie die Metadaten manuell aus dem Dataproc-Metastore extrahieren und in den BigQuery-Metastore einspeisen.

Hinweise

  • Das Migrationstool unterstützt Dataproc-Metastore-Instanzen, die entweder das gRPC- oder das Thrift-Endpunktprotokoll verwenden.
  • Jedes Mal, wenn Sie das Migrationstool ausführen, erstellt der Dataflow-Job eine vollständige Kopie der Metadaten aus dem Dataproc Metastore im BigQuery Metastore.

Beschränkungen

Das Migrationstool migriert keine Metadaten, die nicht mit Datenbank- und Tabellenpartitionen zusammenhängen. Wenn das Tool eine Datenbank oder Tabelle nicht migrieren kann, wird eine Meldung in der Cloud Logging-Instanz des Projekts protokolliert, das den Dataflow-Job enthält.

Nachdem der Fehler protokolliert wurde, verarbeitet der Dataflow-Job weiterhin andere Tabellen und Datenbanken in der Pipeline.

Migration mit dem Tool ausführen

Wenn Sie eine Migration mit dem Tool ausführen möchten, erstellen Sie einen Dataflow-Flex-Vorlagejob. Führen Sie dazu den folgenden gcloud dataflow flex-template-Befehl aus.

gcloud dataflow flex-template run JOB_NAME" \
   --template-file-gcs-location "gs://bigquery-metastore-migration/dpms_to_bqms_migration.json" \
   --parameters bigQueryMetastoreProjectId="DESTINATION_BIGQUERY_PROJECT_ID" \
   --parameters endpointUri="METASTORE_URI" \
   --parameters bigQueryMetastoreDatabaseLocation=DATABASE_LOCATION \
  [--network=NETWORK] \
  [--subnetwork=SUBNETWORK]

Ersetzen Sie Folgendes:

  • JOB_NAME: Der Name des Dataflow-Jobs, mit dem die Migration ausgeführt werden soll.
  • DESTINATION_BIGQUERY_PROJECT_ID: die ID des BigQuery-Projekts, in das der Dataflow-Job Daten schreibt.
  • METASTORE_URI: URI des Dataproc Metastore-Dienstes.
  • DATABASE_LOCATION: Speicherort, an den der BigQuery-Metastore Daten schreibt. Wenn Sie diesen Wert beispielsweise auf US festlegen, werden alle vom Tool erstellten BigQuery-Ressourcen an diesem Speicherort gespeichert.
  • NETWORK: Optional: Das Netzwerk, in dem der Dataflow-Job ausgeführt werden soll. Nur für Dataproc Metastore-Dienste erforderlich, die einen Thrift-Endpunkt verwenden.
  • SUBNETWORK: Optional: das Subnetzwerk, in dem der Dataflow-Job ausgeführt werden soll. Nur für Dataproc Metastore-Dienste erforderlich, die einen Thrift-Endpunkt verwenden.

Nächste Schritte