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:
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.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.
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.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:
Öffnen Sie in der Google Cloud Console die Lakehouse-Laufzeitkatalog Seite.
Wählen Sie den Katalog, den Namespace und die Tabelle aus, in die Sie Daten importieren möchten.
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.
Im Abschnitt Quellen:
Klicken Sie auf den Pfeil , um das Quellfeld ReadFromDeltaLake Delta Lake-Tabelle zu maximieren.
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.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.Klicken Sie auf Fertig.
Im Abschnitt Senke:
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.
Klicken Sie auf Fertig.
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.
Prüfen Sie in der Dataflow-Jobliste, ob der Jobstatus Erfolgreich ist.
Wenn der Job fehlschlägt oder Fehler auftreten, finden Sie weitere Informationen in den Job- oder Worker-Logs.
Öffnen Sie in der Google Cloud Console die Seite BigQuery Studio.
Geben Sie im Abfrageeditor eine SQL-Abfrage ein, um die Tabelle zu prüfen. Sie können die
PROJECT_ID.CATALOG.NAMESPACE.TABLE_NAMEKonvention verwenden, um Folgendes abzufragen:SELECT * FROM `PROJECT_ID`.`CATALOG`.`NAMESPACE`.`TABLE_NAME` LIMIT 10;Klicken Sie auf „“ Ausführen.
Prüfen Sie die Abfrageergebnisse , um sicherzustellen, dass die Daten korrekt verarbeitet wurden.
Nächste Schritte
- Weitere Informationen zum Erstellen eines benutzerdefinierten Jobs mit der Job-Builder-UI
- Weitere Informationen finden Sie unter Einführung in Lakehouse-Tabellen für Apache Iceberg in BigQuery.