Sie können ein Dataflow-Job-Builder-Blueprint verwenden, um vorhandene Apache Parquet-Dateien aus cloudbasiertem Speicher (Cloud Storage oder Amazon S3) einer Apache Iceberg-Tabelle in Lakehouse hinzuzufügen.
Bei diesem Prozess wird die IcebergAddFiles-Transformation verwendet.
Wenn sich Ihre Parquet-Dateien in Cloud Storage befinden, werden die Dateien mit dieser Transformation in Lakehouse registriert, ohne dass die zugrunde liegenden Daten verschoben oder neu geschrieben werden. Wenn sich Ihre Dateien in einem externen Speichersystem wie Amazon S3 befinden, werden sie für schnellere Abfragen über Lakehouse in Cloud Storage kopiert und dann registriert.
Verwenden Sie die folgenden Verbindungsdetails, um Parquet-Dateien aus cloudbasiertem Speicher in eine Apache Iceberg-Tabelle in Lakehouse einzufügen.
Hinweis
Aktivieren Sie die Dataflow-, BigQuery- und Lakehouse-APIs.
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.
Erstellen Sie ein Lakehouse für den Apache Iceberg-Katalog, den Namespace und die Tabelle, in die Daten importiert werden sollen.
Erstellen Sie einen cloudbasierten Speicher-Bucket (Cloud Storage oder Amazon S3) und laden Sie Ihre Parquet-Dateien in den Bucket hoch.
Wenn Sie keinen Cloud Storage-Bucket verwenden, erstellen Sie einen, um die Fehlerlogs für Ihre Jobs zu speichern.
Unterstützung und Einschränkungen
Beim Importieren von Parquet-Dateien in cloudbasiertem Speicher in Lakehouse für Apache Iceberg mit Dataflow gelten die folgenden Einschränkungen:
- Die Quelldaten müssen im Apache Parquet-Format vorliegen und in Cloud Storage oder Amazon S3 gespeichert sein.
- Diese Funktion unterstützt nur Batchpipelines.
Parquet-Dateien in Lakehouse importieren
Gehen Sie so vor, um Parquet-Dateien aus dem cloudbasierten Speicher in eine Iceberg-Tabelle in Lakehouse zu importieren.
Rufen Sie in der Google Cloud Console die Seite Lakehouse for Apache Iceberg 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.
Wählen Sie im Dialogfeld Konfiguration importieren die Option Tabelle aus einer Apache Parquet-Datei in Lakehouse importieren (Batch) aus.
Die Dataflow-Seite Job Builder wird geöffnet.
Im Abschnitt Quellen:
Öffnen Sie den bereits erstellten Quelleneintrag CreateGlobalInput.
Geben Sie im Editorbereich YAML-Quellkonfiguration einen oder mehrere Pfade zu Ihren Parquet-Dateien in der
elements-Sequenz ein.Um die Effizienz des Imports zu verbessern, geben Sie beim Registrieren einer großen Anzahl von Dateien mehrere Dateigruppen (Globs) an. Beispiel:
reshuffle: true elements: - gs://BUCKET_NAME/restaurant-data/2023/*.parquet - gs://BUCKET_NAME/restaurant-data/2024/*.parquetKlicken Sie auf Fertig.
Im Abschnitt Transformationen:
Klicken Sie auf den Transformationsabschnitt IcebergAddFiles, um ihn zu öffnen.
Geben Sie im Feld Iceberg-Tabelle den Namespace und den Tabellennamen ein. Beispiel: NAMESPACE .TABLE_NAME .
Konfigurieren Sie unter Katalogattribute die folgenden Elemente:
warehouse: Der Cloud Storage-Speicherort Ihres Katalogs. Beispiel:
gs://CATALOG_PATH.header.x-goog-user-project: Ihre Google Cloud Projekt-ID: PROJECT_ID.
Klicken Sie auf Fertig.
Wenn Sie von S3 migrieren, müssen Sie zusätzliche Konfigurationen angeben, um Parquet-Dateien in Cloud Storage zu kopieren. Das ist nicht erforderlich, wenn sich Ihre Dateien bereits in Cloud Storage befinden.
Klicken Sie auf den Transformationsabschnitt CopyFilesToGCS, um ihn zu öffnen.
Legen Sie den Wert des Konfigurationsparameters gcs_file_path fest, um den voll qualifizierten Cloud Storage-Bucket anzugeben, in den temporäre Dateien kopiert werden sollen. Wir empfehlen, denselben Cloud Storage-Bucket wie für das Lakehouse-Warehouse zu verwenden.
Klicken Sie auf Fertig.
1. Klicken Sie auf den Abschnitt Dataflow-Optionen, um ihn zu öffnen.
- Klicken Sie auf Zusätzliche Pipelineoptionen hinzufügen, um S3-bezogene Apache Beam-Pipelineoptionen anzugeben. Zum Beispiel s3_region_name, s3_access_key_id, s3_secret_access_key und die entsprechenden Werte.
Im Bereich Sinks (Senken):
Klicken Sie auf die Senke Write results (Ergebnisse schreiben), um sie zu öffnen.
Geben Sie im Feld JSON-Speicherort den Cloud Storage-Speicherort und den Dateinamen an, in die Fehlerergebnisse geschrieben werden sollen. Beispiel:
gs://BUCKET_NAME/errors/errors.jsonKlicken Sie auf Fertig.
Klicken Sie im Bereich Dataflow-Optionen auf Job ausführen.
Wenn Sie die Dataflow-Pipeline, die zum Registrieren von Parquet-Dateien verwendet wird, weiter anpassen möchten, können Sie das Job-Builder-Formular oder den YAML-Editor verwenden.
Jobausgabe prüfen
Nach Abschluss des Jobs können Sie überprü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, sehen Sie sich die JSON-Fehlerlogdatei in Cloud Storage an, um Details zu erhalten.
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 Konvention
PROJECT_ID.CATALOG>NAMESPACE.TABLE_NAMEfür Abfragen verwenden.SELECT * FROM `PROJECT_ID.CATALOG>NAMESPACE.TABLE_NAME` LIMIT 10Klicken Sie auf Ausführen.
Sehen Sie sich die Abfrageergebnisse an, um sicherzustellen, dass die Daten korrekt verarbeitet wurden.
Nächste Schritte
- Weitere Informationen zum Lakehouse-Laufzeitkatalog
- Weitere Informationen zur Benutzeroberfläche des Dataflow-Job-Builders