Metadaten in Dataproc Metastore importieren

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.

Dateien in einem anderen Format wie PostgreSQL müssen in das Avro- oder MySQL-Format konvertiert werden. 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 für jede Tabelle in Ihrer Datenbank eine Reihe von <table-name>.avro-Dateien.

Zum Importieren von Avro-Dateien kann der Dataproc Metastore-Dienst den Datenbanktyp MySQL oder Spanner 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 von einem Dataproc-Cluster mit nativem SQL abgerufen wurden, werden ebenfalls unterstützt.

Zum Importieren von MySQL-Dateien muss der Dataproc Metastore-Dienst den MySQL-Datenbanktyp verwenden. Der Spanner-Datenbanktyp unterstützt keine MySQL-Importe.

Hinweise 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 werden der Datenbankinhalt nicht transformiert und die Dateimigration wird nicht durchgeführt. Wenn Sie die Daten an einen anderen Speicherort verschieben, müssen Sie die Speicherorte und das Schema der Tabellendaten manuell in Ihrem Dataproc Metastore-Dienst aktualisieren.

  • Beim Importieren werden detaillierte IAM-Richtlinien nicht 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

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Importieren von Metadaten in Dataproc Metastore benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff 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 für den Metastore-Dienst.
  • Damit MySQL das Cloud Storage-Objekt (SQL-Dumpdatei) für den Import verwenden kann, gewähren Sie Ihrem Nutzerkonto und dem Dataproc Metastore-Dienst-Agent storage.objects.get für den Cloud Storage-Bucket, der den importierten Metadatendump enthält.
  • Damit Avro den Cloud Storage-Bucket für den Import verwenden kann, gewähren Sie Ihrem Nutzerkonto und dem Dataproc Metastore-Dienst-Agent storage.objects.get für den Cloud Storage-Bucket, der den importierten Metadatendump enthält.

Möglicherweise können Sie diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Weitere Informationen zu bestimmten Dataproc Metastore-Rollen und -Berechtigungen finden Sie in der Übersicht über Dataproc Metastore-IAM.

Metadaten importieren

Der Importvorgang umfasst zwei Schritte. Zuerst bereiten Sie Ihre Importdateien vor und importieren sie in Dataproc Metastore.

Wenn Sie einen Import starten, führt Dataproc Metastore eine Validierung des Hive-Metadatenschemas durch. Bei dieser Validierung werden die Tabellen in der SQL-Dumpdatei und die Dateinamen für Avro überprüft. Wenn eine Tabelle fehlt, schlägt der Import mit einer Fehlermeldung fehl, die die fehlende Tabelle beschreibt.

Mit dem Dataproc Metastore-Toolkit können Sie die Kompatibilität der Hive-Metadaten vor einem Import prüfen.

Importdateien vor dem Import vorbereiten

Bevor Sie die Dateien in Dataproc Metastore importieren können, müssen Sie die Metadaten-Dumpdateien in Cloud Storage kopieren, z. B. in den Cloud Storage-Bucket für Artefakte.

Dateien in Cloud Storage verschieben

  1. Erstellen Sie einen Datenbank-Dump der externen Datenbank, die Sie in Dataproc Metastore importieren möchten.

    Eine Anleitung zum Erstellen eines Datenbank-Dumps finden Sie auf den folgenden Seiten:

  2. 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 eine Avro-Datei für jede Hive-Tabelle enthalten, auch wenn die Tabelle leer ist.
      • Die Avro-Dateinamen müssen das Format <table-name>.avro haben. <table-name> muss ausschließlich in Großbuchstaben angegeben werden. Beispiel: AUX_TABLE.avro

Dateien in Dataproc Metastore importieren

Lesen Sie vor dem Importieren von Metadaten die Überlegungen zum Import.

Während eines Imports können Sie einen Dataproc Metastore-Dienst nicht aktualisieren, z. B. nicht die Konfigurationseinstellungen. Sie können sie jedoch weiterhin für normale Vorgänge verwenden, z. B. für den Zugriff auf die Metadaten über angehängte Dataproc- oder selbstverwaltete Cluster.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Dataproc Metastore:

    Dataproc Metastore öffnen

  2. 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.

    Seite „Dienstdetails“
    Abbildung 1: Detailseite des Dataproc Metastore-Dienstes.
  3. Klicken Sie in der Navigationsleiste auf Importieren.

    Das Dialogfeld Importieren wird geöffnet.

  4. Geben Sie den Importnamen ein.

  5. Wählen Sie im Abschnitt Ziel entweder MySQL oder Avro aus.

  6. 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 Bucket-Standort auch manuell in das dafür vorgesehene Textfeld eingeben. Verwenden Sie das folgende Format: bucket/object oder bucket/folder/object.

  7. Optional: Geben Sie eine Beschreibung des Imports ein.

    Sie können die Beschreibung auf der Seite Dienstdetails bearbeiten.

  8. Klicken Sie auf Importieren, um den Dienst zu aktualisieren.

    Nachdem der Import abgeschlossen ist, wird er auf der Seite Dienstdetails auf dem Tab Import/Export in einer Tabelle angezeigt.

gcloud-CLI

  1. 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 voll qualifizierte Name Ihres Dataproc Metastore-Dienstes.
    • LOCATION: die Google Cloud-Region, in der sich der Dataproc Metastore-Dienst befindet.
    • IMPORT_ID: eine ID oder ein voll qualifizierter Name für den Metadatenimport Beispiel: import1.
    • DESCRIPTION (optional): Eine Beschreibung des Imports. Sie können dies später mit gcloud metastore services imports update IMPORT bearbeiten.
    • DUMP_TYPE: der Typ der externen Datenbank, die Sie importieren. Zulässige Werte sind mysql und avro. Der Standardwert ist mysql.
    • DATABASE_DUMP: der Pfad zu Cloud Storage, das die Datenbankdateien enthält. Dieser Pfad muss mit gs:// beginnen. Geben Sie für Avro den Pfad zum Ordner an, in dem die Avro-Dateien gespeichert sind (den Cloud Storage-Ordner). Geben Sie für MySQL den Pfad zur MySQL-Datei (dem Cloud Storage-Objekt) an.
  2. Prüfen Sie, ob der Import erfolgreich war.

REST

Folgen Sie der API-Anleitung zum Importieren von Metadaten in einen Dienst mit APIs Explorer.

Mit der API können Sie Importe erstellen, auflisten, beschreiben und aktualisieren, aber nicht löschen. Beim Löschen eines Dataproc Metastore-Dienstes werden jedoch alle gespeicherten verschachtelten Importe gelöscht.

Nach dem erfolgreichen Import kehrt Dataproc Metastore automatisch in den aktiven Status zurück. Wenn der Import fehlschlägt, wird für Dataproc Metastore ein Rollback auf den vorherigen fehlerfreien Zustand durchgeführt.

Importverlauf ansehen

Führen Sie die folgenden Schritte aus, um den Importverlauf eines Dataproc Metastore-Dienstes in der Google Cloud Console aufzurufen:

  1. Öffnen Sie in der Google Cloud Console die Seite Dataproc Metastore.
  2. Klicken Sie in der Navigationsleiste auf Importieren/Exportieren.

    Der Importverlauf wird in der Tabelle Importverlauf angezeigt.

    Im Verlauf werden bis zu die letzten 25 Importe angezeigt.

Beim Löschen eines Dataproc Metastore-Dienstes wird auch der gesamte zugehörige Importverlauf gelöscht.

Häufige Probleme beheben

Zu den häufigen Problemen gehören:

Weitere Hilfe zum Beheben häufiger Probleme finden Sie unter Szenarien für Import- und Exportfehler.

Nächste Schritte