Metadaten in einen Dienst importieren

Durch einen Import werden Metadaten, die in einem externen Hive-Metastore gespeichert sind und von einer relationalen Datenbank unterstützt werden, zu Dataproc Metastore migriert. Unterstützte Importquellen sind Avro- und MySQL-Dumpdateien. Avro-basierte Importe werden für Hive-Versionen 2.3.6 und 3.1.2 unterstützt.

Auf dieser Seite wird erläutert, wie Sie Metadaten in einen vorhandenen Dataproc Metastore-Dienst importieren. Beachten Sie, dass Sie die Daten zuerst in einem Cloud Storage-Bucket ablegen müssen, wie in den folgenden Abschnitten beschrieben.

Hinweis

  • Für die meisten gcloud metastore-Befehle ist ein Speicherort erforderlich. Sie können den Speicherort mit dem Flag --location oder durch Festlegen des Standardspeicherorts angeben.

    Die besten Ergebnisse erzielen Sie, wenn Sie Cloud Storage-Buckets verwenden, die sich in derselben Region wie Ihr Dataproc Metastore-Dienst befinden. Obwohl Dataproc Metastore keine Regionseinschränkungen erzwingt, erzielen gemeinsame Standorte und globale Ressourcen eine bessere Leistung. Ein globaler Bucket eignet sich beispielsweise für jede Dienstregion, aber ein Bucket mit mehreren Regionen in der EU funktioniert nicht gut mit einem us-central1-Dienst. Der regionenübergreifende Zugriff führt zu einer höheren Latenz, einer fehlenden regionalen Isolierung von Gebühren und Gebühren für die regionenübergreifende Netzwerkbandbreite.

Zugriffssteuerung

  • Zum Importieren von Metadaten benötigen Sie eine IAM-Rolle, die die IAM-Berechtigung metastore.imports.create enthält. Die Dataproc Metastore-spezifischen Rollen roles/metastore.admin und roles/metastore.editor enthalten die Importberechtigung.

  • Sie können Nutzern oder Gruppen mithilfe der Legacy-Rollen roles/owner und roles/editor Importberechtigungen erteilen.

  • Der Dataproc Metastore-Dienst-Agent (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) und der Nutzer, der die Metadaten importiert, müssen die folgende Leseberechtigung für den für den Import verwendeten Cloud Storage-Bucket haben:

    • Für MySQL benötigen sie die Berechtigung storage.objects.get für das Cloud Storage-Objekt (SQL-Dumpdatei), das für den Import verwendet wird.

    • Für Avro benötigen sie die Berechtigung storage.objects.get für den Cloud Storage-Bucket, der für den Import verwendet wird.

  • Wenn Sie VPC Service Controls verwenden, können Sie nur Daten aus einem Cloud Storage-Bucket importieren, der sich im selben Dienstperimeter wie der Dataproc Metastore-Dienst befindet.

Weitere Informationen finden Sie unter Dataproc Metastore-IAM und -Zugriffssteuerung.

Metadaten in einen Dienst importieren

Zum Importieren von Metadaten in einen Dienst geben Sie Importparameter auf der Seite mit den Dienstdetails ein, die in einem lokalen Browser geöffnet wurden. Verwenden Sie das Tool gcloud oder verwenden Sie eine Dataproc Metastore API-Methode services.metadataImports.create.

Während ein Import ausstehend ist, können keine Aktualisierungen an dem Dienst vorgenommen werden. Sie können den Dienst weiterhin verwenden, während er importiert wird.

Import vorbereiten

Bevor Sie Metadaten aus einer externen Hive-Metastore-Datenbank in Dataproc Metastore importieren können, müssen Sie den Import zuerst vorbereiten:

  1. Erstellen Sie Datenbank-Dumps im Format von Avro-Dateien oder MySQL-Dumpdatei Ihrer externen Datenbank.

  2. Verschieben Sie die Dateien in Cloud Storage. Notieren Sie sich den Cloud Storage-Pfad. Sie benötigen sie für den Import.

    • Verschieben Sie die Dateien für Avro in einen Cloud Storage-Ordner. Für jede Hive-Tabelle sollte eine Datei vorhanden sein, auch wenn die Tabelle leer ist. Die Dateinamen müssen das Format <table-name>.avro haben, wobei <table-name> aus Großbuchstaben bestehen muss. Sie finden das <table-name> in den SQL-Dumpdateien. Hier ist ein Beispieldateiname: AUX_TABLE.avro.

    • Verschieben Sie die Datei für MySQL in einen Cloud Storage-Bucket.

Dataproc Metastore führt beim Start des Imports eine Validierung des Hive-Metadatenschemas durch. Dabei 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. Sie können das Dataproc Metastore Toolkit als Referenz verwenden, um die richtigen Hive-Metadatenschemas zu prüfen.

Nachdem Sie die Datei vorbereitet haben, können Sie sie in einen Dataproc Metastore-Dienst importieren:

Console

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

    Dataproc Metastore in der Cloud Console öffnen

  2. Klicken Sie auf der Seite Dataproc Metastore auf den Namen des Dienstes, in den Sie Metadaten importieren möchten. Die Seite Servicedetails wird geöffnet.

    Seite „Dienstdetails“
  3. Klicken Sie oben auf der Seite auf die Schaltfläche Importieren. Das Dialogfeld Importieren wird geöffnet.

  4. Geben Sie den Namen importieren ein.

  5. Wählen Sie die Quelle aus.

  6. Wählen Sie den Cloud Storage-URI aus. Dies ist der Cloud Storage-Pfad zum Importdaten-Bucket.

  7. Optional: Geben Sie eine Beschreibung des Imports ein. Sie können diese später auf der Seite Dienstdetails bearbeiten.

  8. Klicken Sie auf die Schaltfläche Importieren, um den Dienst zu aktualisieren.

  9. Vergewissern Sie sich, dass Sie auf die Seite Dienstdetails zurückgekehrt sind und der Import im Bereich Importverlauf unter Import/Export aufgeführt ist.

gcloud

  1. Führen Sie den folgenden gcloud metastore services import gcs-Befehl aus, um einen Dienst zu aktualisieren:

    gcloud metastore services import gcs SERVICE \
        --import-id=IMPORT_ID \
        --location=LOCATION \
        --description=DESCRIPTION \
        --dump-type=DUMP_TYPE \
        --database-dump=DATABASE_DUMP
    

    Dabei gilt:

    • SERVICE: Der Name des Dienstes.
    • IMPORT_ID: Die ID des Metadatenimports.
    • LOCATION: Bezieht sich auf eine Google Cloud-Region.
    • DESCRIPTION (optional): Beschreibung des Imports Du kannst dies später mit gcloud metastore services imports update IMPORT bearbeiten
    • DUMP_TYPE: Der Typ der externen Datenbank. Die Standardeinstellung ist mysql.
    • DATABASE_DUMP: Der Pfad zum Cloud Storage-Bucket, der die Datenbankdateien enthält. Er muss mit gs:// beginnen.
  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.

Wenn der Import erfolgreich ist, wechselt der Dienst automatisch in den Aktivitätsstatus. Wenn ein Fehler auftritt, wird der Dienst auf den vorherigen fehlerfreien Zustand zurückgesetzt.

Den Importverlauf eines Dienstes finden Sie in der Cloud Console auf der Seite Dienstdetails im Tab Import/Export.

Vorbehalte bei Importen

  • Beim Importieren werden die Metadaten des gesamten Dienstes aktualisiert. Alle vorhandenen Metadaten werden überschrieben.

  • Ihre Datenbankdateien müssen entweder Avro- oder MySQL-Dumpdateien sein. Wenn Sie eine andere Methode wie PostgreSQL verwenden, müssen Sie den Dump entweder in Avro- oder MySQL-Dumpdateien konvertieren. Der Import unterstützt MySQL-Dumps, die aus einem Dataproc-Cluster mit nativem SQL abgerufen wurden.

  • Avro-basierte Importe werden für Hive-Versionen 2.3.6 und 3.1.2 unterstützt.

  • Dataproc Metastore transformiert den Datenbankinhalt nicht während des Imports und übernimmt daher nicht die Dateimigration. Wenn Sie die Daten an einen anderen Speicherort verschieben, müssen Sie die Speicherorte und das Schema die Tabellendaten in Dataproc Metastore manuell aktualisieren.

  • Mit der API können Sie Importe erstellen, auflisten, beschreiben und aktualisieren, aber nicht löschen. Durch das Löschen des Dienstes selbst werden jedoch alle verschachtelten Importe unter diesem Dienst gelöscht.

Häufige Fehler

  • Wenn Sie Metadaten importieren, sind die Hive-Metastore- und die Dataproc Metastore-Versionen nicht kompatibel. Falls Ihre Daten nicht übereinstimmen, kann der Import fehlschlagen. Weitere Informationen finden Sie in den Versionsrichtlinien.

  • Bei der Vorbereitung des Imports für MySQL fehlen Hive-Tabellen oder das Schema ist falsch. Der Import schlägt fehl, wenn Tabellen fehlen oder das Schema falsch ist.

  • Bei der Vorbereitung des Imports für Avro fehlen Hive-Tabellendateien. Für jede Hive-Tabelle sollte eine Datei vorhanden sein, auch wenn die Tabelle leer ist. Andernfalls schlägt der Import fehl.

  • Der Dataproc Metastore-Dienst-Agent (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) oder der Nutzer, der die Metadaten importiert, hat die folgende Leseberechtigung:

    • Sie haben für MySQL die Berechtigung storage.objects.get für das Cloud Storage-Objekt (SQL-Dumpdatei), das für den Import verwendet wird.

    • Für Avro haben sie die Berechtigung storage.objects.get für den Cloud Storage-Bucket, der für den Import verwendet wird.

  • Ihre Datenbankdatei ist zu groß und dauert mehr als eine Stunde, um den Importvorgang abzuschließen.

Nächste Schritte