Die Migration von Delta Lake-Tabellen in ein grenzenloses Lakehouse kann komplex und teuer sein, wenn Sie große Datenmengen verschieben müssen. Der Dataflow Job Builder bietet eine Low-Code- oder No-Code-Schnittstelle zum Importieren Ihrer Cloud Storage Delta Lake-Tabellen direkt in Lakehouse. Die vorhandenen Daten werden aus der Delta Lake-Tabelle in die Ziel-Lakehouse-Tabelle kopiert. Dazu wird ein Dataflow-Job verwendet, der je nach Datenvolumen automatisch skaliert wird.
Für neue Tabellen wird das Schema automatisch von Dataflow erstellt. Bei vorhandenen Tabellen wird das Schema nicht geändert. Das Schema der Zieltabelle muss also korrekt der Delta Lake-Quelltabelle zugeordnet werden, 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.
Nachdem Sie diese Daten importiert haben, können Sie die kontinuierliche Migration aktivieren.
Hinweis
Zum Importieren von Delta Lake-Tabellendaten benötigen Sie Folgendes:
Aktivieren Sie die Dataflow-, BigQuery- und Lakehouse-APIs, falls sie noch nicht aktiviert sind.
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 RollenBitten 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ültiger Delta Lake-Tabellenstamm sein, der Ihre Parquet-Datendateien und das
_delta_log/-Transaktionslogverzeichnis enthält.Ein Lakehouse Iceberg-Katalog, ein Namespace und eine Tabelle, in die die Daten importiert werden sollen.
Unterstützung und Einschränkungen
Für den Import von Delta Lake-Tabellendaten in Lakehouse mit Dataflow gelten die folgenden Einschränkungen:
- Für diese Funktion müssen Sie einen Batch-Pipeline-Job verwenden.
- Bei vorhandenen Zieltabelle wird das Schema nicht geändert. Das Schema der Zieltabelle muss dem Schema der Delta Lake-Quelltabelle entsprechen.
- Die Quelldaten müssen eine gültige Delta Lake-Tabelle sein, die in Cloud Storage gespeichert ist. Das Tabellenstammverzeichnis muss die Parquet-Datendateien und das von Delta Lake erstellte Transaktionsprotokollverzeichnis
_delta_log/(mit JSON- oder Parquet-Protokolldateien) enthalten. - Amazon S3 wird für Delta Lake-Tabellenquellen nicht unterstützt.
Delta Lake-Tabelle importieren
So importieren Sie eine Delta Lake-Tabelle in Lakehouse:
Rufen Sie in der Google Cloud Console die Seite Lakehouse-Laufzeitkatalog auf.
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 to Lakehouse geöffnet.
Im Abschnitt Quellen:
Klicken Sie auf den Erweiterungspfeil, um das Quellfeld Delta Lake-Tabelle für ReadFromDeltaLake zu maximieren.
Geben Sie im Feld Tabellenpfad den Cloud Storage-URI des Stammverzeichnisses der Delta Lake-Tabelle ein (das Verzeichnis, das die Datendateien und das Verzeichnis
_delta_log/enthält). 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 Sink:
Optional: Sehen Sie sich das Senkenfeld WriteToIceberg Lakehouse-Tabelle an. Die Informationen in diesem Bereich, z. B. die Lakehouse-Tabelle, der Katalognamen und der Warehouse-Speicherort, sind in der Regel bereits ausgefüllt.
Klicken Sie auf Fertig.
Klicken Sie im Bereich 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 die Lakehouse-Tabelle kopiert wurden, indem Sie sie in BigQuery abfragen.
Prüfen Sie in der Dataflow-Jobliste, ob der Jobstatus Erfolgreich lautet.
Wenn der Job fehlschlägt oder Fehler auftreten, finden Sie weitere Informationen in den Job- oder Worker-Logs.
Rufen Sie in der Google Cloud Console die Seite BigQuery Studio auf.
Geben Sie im Abfrageeditor eine SQL-Abfrage ein, um die Tabelle zu untersuchen. 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;Klicken Sie auf Ausführen.
Prüfen Sie die Abfrageergebnisse, um sicherzustellen, dass die Daten korrekt verarbeitet wurden.
Optional. Kontinuierliche Migration aktivieren
So richten Sie die kontinuierliche End-to-End-Migration von Delta Lake zu Lakehouse ein:
- Aktivieren Sie die
delta.enableChangeDataFeed-Eigenschaft für die Delta Lake-Eingabetabelle. - Führen Sie eine erste Tabellenmigration zu einer Commit-ID oder einem Zeitstempel durch, nachdem Sie das Attribut
delta.enableChangeDataFeedfestgelegt haben. - Führen Sie geplante CDC-Jobs für nachfolgende Daten mit einer Häufigkeit (Commit-ID oder Zeitstempelbereich) aus, die für Ihre Arbeitslastanforderungen ausgewählt wurde.
Weitere Informationen finden Sie unter Delta Lake-CDC-Daten (Change Data Capture) mit Dataflow in Lakehouse migrieren.
Nächste Schritte
- Weitere Informationen finden Sie unter Einführung in Lakehouse-Tabellen für Apache Iceberg in BigQuery.
- Weitere Informationen zum regelmäßigen Migrieren von Delta Lake-CDC-Daten in Lakehouse
- Change Data Capture-Aufnahme in Lakehouse
- Weitere Informationen zum Erstellen eines benutzerdefinierten Jobs mit der Job Builder-Benutzeroberfläche