Auf dieser Seite wird erläutert, wie Sie Metadaten in einen Dataproc Metastore-Dienst importieren.
Mit der Funktion zum Importieren von Metadaten können Sie einen vorhandenen Dataproc Metastore-Dienst mit Metadaten füllen, die in einem portablen Speicherformat gespeichert sind.
Diese portablen Metadaten werden in der Regel aus einem anderen Dataproc Metastore-Dienst oder aus einem selbstverwalteten Hive-Metastore (HMS) exportiert.
Metadaten importieren
Sie können die folgenden Dateiformate in Dataproc Metastore importieren:
- Eine Reihe von Avro-Dateien, die in einem Ordner gespeichert sind.
- Eine einzelne MySQL-Dumpdatei, die in einem Cloud Storage-Ordner gespeichert ist.
Die MySQL- oder Avro-Dateien, die Sie importieren, müssen aus einer relationalen Datenbank generiert werden.
Wenn Ihre Dateien in einem anderen Format vorliegen, z. B. PostgreSQL, müssen Sie sie in das Avro- oder MySQL-Format konvertieren. Nach der Konvertierung können Sie sie in Dataproc Metastore importieren.
Avro
Avro-basierte Importe werden nur für die Hive-Versionen 2.3.6 und 3.1.2 unterstützt. Beim Importieren von Avro-Dateien erwartet Dataproc Metastore eine Reihe von <table-name>.avro
-Dateien für jede Tabelle in Ihrer Datenbank.
Zum Importieren von Avro-Dateien kann Ihr Dataproc Metastore-Dienst den MySQL- oder Spanner-Datenbanktyp verwenden.
MySQL
MySQL-basierte Importe werden für alle Hive-Versionen unterstützt. Beim Importieren von MySQL-Dateien erwartet Dataproc Metastore eine einzelne SQL-Datei, die alle Tabelleninformationen enthält. MySQL-Dumps, die mit Native SQL aus einem Dataproc-Cluster abgerufen wurden, werden ebenfalls unterstützt.
Wenn Sie MySQL-Dateien importieren möchten, muss für Ihren Dataproc Metastore-Dienst der MySQL-Datenbanktyp verwendet werden. Der Spanner-Datenbanktyp unterstützt keine MySQL-Importe.
Überlegungen zum Import
Beim Importieren werden alle vorhandenen Metadaten überschrieben, die in einem Dataproc Metastore-Dienst gespeichert sind.
Mit der Funktion zum Importieren von Metadaten werden nur Metadaten importiert. Daten, die von Apache Hive in internen Tabellen erstellt werden, werden beim Import nicht repliziert.
Beim Importieren wird der Datenbankinhalt nicht transformiert und es erfolgt keine Dateimigration. Wenn Sie die Daten an einen anderen Speicherort verschieben, müssen Sie die Speicherorte und das Schema die Tabellendaten in Ihrem Dataproc Metastore-Dienst manuell aktualisieren.
Beim Importieren werden keine detaillierten IAM-Richtlinien wiederhergestellt oder ersetzt.
Wenn Sie VPC Service Controls nutzen, können Sie nur Daten aus Cloud Storage-Buckets importieren, die sich im selben Dienstperimeter wie der Dataproc Metastore-Dienst befinden.
Hinweise
- Aktivieren Sie Dataproc Metastore in Ihrem Projekt.
- Machen Sie sich mit den Netzwerkanforderungen vertraut, die für Ihr Projekt gelten.
- Dataproc Metastore-Dienst erstellen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Importieren von Metadaten in Dataproc Metastore benötigen:
-
So importieren Sie Metadaten:
-
Dataproc Metastore-Bearbeiter (
roles/metastore.editor
) für den Metadatendienst. -
Dataproc Metastore-Administrator (
roles/metastore.admin
) für das Projekt.
-
Dataproc Metastore-Bearbeiter (
-
Wenn Sie das Cloud Storage-Objekt (SQL-Dumpdatei) für den Import verwenden möchten, müssen Sie für MySQL Folgendes tun:
Weisen Sie Ihrem Nutzerkonto und dem Dataproc Metastore-Dienst-Agent die Rolle „Storage-Objekt-Betrachter“ (
roles/storage.objectViewer
) für den Cloud Storage-Bucket zu, der den zu importierenden Metadaten-Dump enthält. -
Wenn Sie Avro verwenden und den Cloud Storage-Bucket für den Import nutzen möchten, müssen Sie Folgendes tun:
Weisen Sie Ihrem Nutzerkonto und dem Dataproc Metastore-Dienst-Agent die Rolle „Storage-Objekt-Betrachter“ (
roles/storage.objectViewer
) für den Cloud Storage-Bucket zu, der den zu importierenden Metadaten-Dump enthält.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Importieren von Metadaten in Dataproc Metastore erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um Metadaten in Dataproc Metastore zu importieren:
-
So importieren Sie Metadaten:
metastore.imports.create
im Metastore-Dienst. -
Wenn Sie das Cloud Storage-Objekt (SQL-Dumpdatei) für den Import verwenden möchten, gewähren Sie Ihrem Nutzerkonto und dem Dataproc Metastore-Dienst-Agent für MySQL die Berechtigung:
storage.objects.get
für den Cloud Storage-Bucket, der den zu importierenden Metadatendump enthält. -
Wenn Sie Avro verwenden und den Cloud Storage-Bucket für den Import nutzen möchten, gewähren Sie Ihrem Nutzerkonto und dem Dataproc Metastore-Dienst-Agenten:
storage.objects.get
für den Cloud Storage-Bucket, der den zu importierenden Metadaten-Dump enthält.
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Weitere Informationen zu bestimmten Dataproc Metastore-Rollen und -Berechtigungen finden Sie unter Dataproc Metastore-IAM – Übersicht.Metadaten importieren
Der Importvorgang umfasst zwei Schritte. Zuerst bereiten Sie Ihre Importdateien vor und importieren sie dann in Dataproc Metastore.
Wenn Sie einen Import starten, führt Dataproc Metastore eine Hive-Metadatenschema-Validierung durch. Bei dieser Validierung werden die Tabellen in der SQL-Dumpdatei und die Dateinamen für Avro geprüft. Fehlt eine Tabelle, schlägt der Import mit einer Fehlermeldung fehl, die die fehlende Tabelle beschreibt.
Wenn Sie die Kompatibilität von Hive-Metadaten vor einem Import prüfen möchten, können Sie das Dataproc Metastore Toolkit verwenden.
Importdateien vor dem Import vorbereiten
Bevor Sie Ihre Dateien in Dataproc Metastore importieren können, müssen Sie die Metadaten-Dump-Dateien in Cloud Storage kopieren, z. B. in den Cloud Storage-Bucket für Artefakte.
Dateien in Cloud Storage verschieben
Erstellen Sie einen Datenbank-Dump der externen Datenbank, die Sie in Dataproc Metastore importieren möchten.
Eine Anleitung zum Erstellen eines Datenbankdumps finden Sie auf den folgenden Seiten:
Laden Sie die Dateien in Cloud Storage hoch.
Notieren Sie sich den Cloud Storage-Pfad, in den Sie Ihre Dateien hochladen. Sie benötigen ihn später für den Import.
Wenn Sie MySQL-Dateien importieren, laden Sie die SQL-Datei in einen Cloud Storage-Bucket hoch.
Wenn Sie Avro-Dateien importieren, laden Sie die Dateien in einen Cloud Storage-Ordner hoch.
- Ihr Avro-Import sollte für jede Hive-Tabelle eine Avro-Datei enthalten, auch wenn die Tabelle leer ist.
- Die Avro-Dateinamen müssen dem Format
<table-name>.avro
entsprechen. Der<table-name>
muss in Großbuchstaben geschrieben sein. Beispiel:AUX_TABLE.avro
Dateien in Dataproc Metastore importieren
Lesen Sie vor dem Importieren von Metadaten die Hinweise zum Importieren.
Während ein Import ausgeführt wird, können Sie einen Dataproc Metastore-Dienst nicht aktualisieren, z. B. Konfigurationseinstellungen ändern. Sie können ihn jedoch weiterhin für normale Vorgänge verwenden, z. B. um von angehängten Dataproc- oder selbstverwalteten Clustern aus auf seine Metadaten zuzugreifen.
Console
Öffnen Sie in der Google Cloud Console die Seite Dataproc Metastore:
Klicken Sie auf der Seite Dataproc Metastore auf den Namen des Dienstes, in den Sie Metadaten importieren möchten.
Die Seite Dienstdetails wird geöffnet.
Abbildung 1: Die Seite „Dienstdetails“ für Dataproc Metastore. Klicken Sie in der Navigationsleiste auf Importieren.
Das Dialogfeld Importieren wird geöffnet.
Geben Sie den Importnamen ein.
Wählen Sie im Bereich Ziel entweder MySQL oder Avro aus.
Klicken Sie im Feld Ziel-URI auf Durchsuchen und wählen Sie den Cloud Storage-URI aus, in den Sie die Dateien importieren möchten.
Sie können den Speicherort des Buckets auch manuell in das dafür vorgesehene Textfeld eingeben. Verwenden Sie das folgende Format:
bucket/object
oderbucket/folder/object
.Optional: Geben Sie eine Beschreibung des Imports ein.
Sie können die Beschreibung auf der Seite Dienstdetails bearbeiten.
Klicken Sie auf Importieren, um den Dienst zu aktualisieren.
Nach Abschluss des Imports wird er in einer Tabelle auf der Seite Dienstdetails auf dem Tab Import/Export angezeigt.
gcloud-CLI
Führen Sie den folgenden
gcloud metastore services import gcs
-Befehl aus, um Metadaten zu importieren:gcloud metastore services import gcs SERVICE_ID \ --location=LOCATION \ --import-id=IMPORT_ID \ --description=DESCRIPTION \ --dump-type=DUMP_TYPE \ --database-dump=DATABASE_DUMP
Ersetzen Sie Folgendes:
SERVICE_ID
: die ID oder der vollständig qualifizierte Name Ihres Dataproc Metastore-Dienstes.LOCATION
: die Google Cloud Region, in der sich Ihr Dataproc Metastore-Dienst befindet.IMPORT_ID
: Eine ID oder ein voll qualifizierter Name für Ihren Metadatenimport. Beispiel:import1
.DESCRIPTION
(optional): Eine Beschreibung des Imports. Sie können diese Angabe später mitgcloud metastore services imports update IMPORT
bearbeiten.DUMP_TYPE
: der Typ der externen Datenbank, die Sie importieren. Zulässige Werte sindmysql
undavro
. Der Standardwert istmysql
.DATABASE_DUMP
: der Pfad zum Cloud Storage-Bucket, der die Datenbankdateien enthält. Dieser Pfad muss mitgs://
beginnen. Geben Sie für Avro den Pfad zum Ordner an, in dem die Avro-Dateien gespeichert sind (der Cloud Storage-Ordner). Geben Sie für MySQL den Pfad zur MySQL-Datei (dem Cloud Storage-Objekt) an.
Prüfen Sie, ob der Import erfolgreich war.
REST
Folgen Sie der API-Anleitung zum Import von Metadaten in einen Dienst mit dem APIs Explorer.
Mit der API können Sie Importe erstellen, auflisten, beschreiben und aktualisieren, aber nicht löschen. Wenn Sie einen Dataproc Metastore-Dienst löschen, werden jedoch alle gespeicherten verschachtelten Importe gelöscht.
Wenn der Import erfolgreich ist, wechselt Dataproc Metastore automatisch wieder in den aktiven Status. Wenn der Import fehlschlägt, wird Dataproc Metastore auf seinen vorherigen fehlerfreien Zustand zurückgesetzt.
Importverlauf ansehen
So rufen Sie den Importverlauf eines Dataproc Metastore-Dienstes in der Google Cloud Console auf:
- Öffnen Sie in der Google Cloud Console die Seite Dataproc Metastore.
Klicken Sie in der Navigationsleiste auf Import/Export.
Ihr Importverlauf wird in der Tabelle Importverlauf angezeigt.
Im Verlauf werden die letzten 25 Importe angezeigt.
Wenn Sie einen Dataproc Metastore-Dienst löschen, wird auch der zugehörige Importverlauf gelöscht.
Häufige Probleme beheben
Zu den häufigsten Problemen zählen folgende:
- Import schlägt fehl, da die Hive-Versionen nicht übereinstimmen:
- Der Dienst-Agent oder das Nutzerkonto hat nicht die erforderlichen Berechtigungen.
- Job schlägt fehl, da die Datenbankdatei zu groß ist.
Weitere Informationen zur Behebung häufiger Probleme finden Sie unter Fehlerszenarien für Import und Export.