Delta Lake-Tabellen mit Dataflow in Lakehouse importieren

Die Migration von Delta Lake-Tabellen in Lakehouse für Apache Iceberg kann komplex und teuer sein, wenn Sie große Datenmengen neu schreiben oder verschieben müssen. Damit Ihre Delta Lake-Daten in Lakehouse verfügbar sind, ohne die zugrunde liegenden Dateien zu verschieben oder neu zu schreiben, können Sie den Dataflow-Job-Builder verwenden. Der Job-Builder bietet eine Low-Code- oder No-Code-Oberfläche, mit der Sie Ihre Cloud Storage-Delta Lake-Tabellen direkt in Lakehouse importieren können.

Für neue Tabellen erstellt Dataflow automatisch das Schema. Bei vorhandenen Tabellen wird das Schema nicht geändert. Das Schema der Zieltabelle muss also korrekt der Delta Lake-Quelltabelle zugeordnet sein, damit der Job erfolgreich ausgeführt werden kann.

Verwenden Sie die folgenden Verbindungsdetails, um Daten aus einer Delta Lake-Tabelle zu importieren, die in Cloud Storage gespeichert ist.

Hinweis

Für den Import von Delta Lake-Tabellendaten benötigen Sie Folgendes:

  1. Aktivieren Sie die Dataflow, BigQuery und Lakehouse APIs.

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen.

    APIs aktivieren

  2. Bitten Sie Ihren Administrator, Ihnen die erforderlichen IAM-Rollen (Identity and Access Management) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen der Ressourcen benötigen.

  3. Eine vorhandene Delta Lake-Tabelle, die in einem Cloud Storage-Bucket gespeichert ist. Das Tabellenverzeichnis muss ein gültiges Delta Lake-Tabellenstammverzeichnis sein, das Ihre Parquet-Datendateien und das Transaktionslogverzeichnis _delta_log/ enthält.

  4. Ein Lakehouse Iceberg-Katalog, -Namespace und Tabelle, in die die Daten importiert werden sollen.

Unterstützung und Einschränkungen

Beim Importieren von Delta Lake-Tabellendaten in Lakehouse für Apache Iceberg mit Dataflow gelten die folgenden Einschränkungen:

  • Sie müssen einen Batch-Pipelinejob verwenden, um diese Funktion nutzen zu können.
  • Bei vorhandenen Zieltabellen wird das Schema nicht geändert. Das Schema der Zieltabelle muss korrekt dem Schema der Delta Lake-Quelltabelle zugeordnet sein.
  • Die Quelldaten müssen eine gültige Delta Lake-Tabelle sein, die in Cloud Storage gespeichert ist. Das Stammverzeichnis der Tabelle muss die Parquet-Datendateien und das Transaktionslogverzeichnis _delta_log/ (mit JSON- oder Parquet-Logdateien) enthalten, wie von Delta Lake erstellt.
  • Amazon S3 wird für Delta Lake-Tabellenquellen nicht unterstützt.

Delta Lake-Tabelle importieren

So importieren Sie eine Delta Lake-Tabelle in Lakehouse für Apache Iceberg:

  1. Öffnen Sie in der Google Cloud Console die Lakehouse-Laufzeitkatalog Seite.

    Lakehouse-Laufzeitkatalog aufrufen

  2. Wählen Sie den Katalog, den Namespace und die Tabelle aus, in die Sie Daten importieren möchten.

  3. Klicken Sie auf der Seite Tabellendetails auf Tabelle importieren und wählen Sie dann Aus Delta Lake (Batch) aus.

    Die Dataflow-Seite Job-Builder wird mit dem Blueprint Delta Lake zu Lakehouse geladen.

  4. Im Abschnitt Quellen:

    1. Klicken Sie auf den Pfeil , um das Quellfeld ReadFromDeltaLake Delta Lake-Tabelle zu maximieren.

    2. Geben Sie im Feld Tabellenpfad den Cloud Storage-URI des Stammverzeichnisses der Delta Lake-Tabelle ein (das Verzeichnis mit den Datendateien und dem Verzeichnis _delta_log/). Beispiel: gs://BUCKET_NAME/tables/TABLE_NAME.

    3. Optional: Konfigurieren Sie im Feld Hadoop-Konfigurationsattribute alle zusätzlichen Hadoop-Konfigurationsattribute, die zum Lesen aus Cloud Storage erforderlich sind. Beispiel: fs.gs.impl=com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem.

    4. Klicken Sie auf Fertig.

  5. Im Abschnitt Senke:

    1. Optional: Prüfen Sie das Senkenfeld WriteToIceberg Lakehouse-Tabelle. Die Informationen in diesem Feld, z. B. die Lakehouse-Tabelle, der Katalognamen und der Warehouse-Speicherort, werden in der Regel automatisch ausgefüllt.

    2. Klicken Sie auf Fertig.

  6. Klicken Sie im Abschnitt Dataflow-Optionen auf Job ausführen.

Wenn Sie die Dataflow-Pipeline, die zum Importieren von Delta Lake-Tabellen verwendet wird, weiter anpassen möchten, können Sie das über das Job-Builder-Formular oder den YAML-Editor tun.

Jobausgabe prüfen

Nach Abschluss des Jobs können Sie prüfen, ob die Daten in der Iceberg-Tabelle registriert wurden, indem Sie sie in BigQuery abfragen.

  1. Prüfen Sie in der Dataflow-Jobliste, ob der Jobstatus Erfolgreich ist.

    Jobs aufrufen

  2. Wenn der Job fehlschlägt oder Fehler auftreten, finden Sie weitere Informationen in den Job- oder Worker-Logs.

  3. Öffnen Sie in der Google Cloud Console die Seite BigQuery Studio.

    BigQuery aufrufen

  4. Geben Sie im Abfrageeditor eine SQL-Abfrage ein, um die Tabelle zu prüfen. Sie können die PROJECT_ID.CATALOG.NAMESPACE.TABLE_NAME Konvention verwenden, um Folgendes abzufragen:

    SELECT * FROM `PROJECT_ID`.`CATALOG`.`NAMESPACE`.`TABLE_NAME` LIMIT 10;
    
  5. Klicken Sie auf „Ausführen.

  6. Prüfen Sie die Abfrageergebnisse , um sicherzustellen, dass die Daten korrekt verarbeitet wurden.

Nächste Schritte