Mit dem von Apache Beam verwalteten E/A-Connector können Sie Streaming-CDC-Datensätze (Change Data Capture) aus Apache Iceberg-Tabellen über einen Lakehouse REST-Katalog aufnehmen. Bei dieser Integration werden kontinuierliche Updates direkt in Ihren Streamingpipelines verarbeitet.
Verwaltete E/A unterstützt keine automatischen Pipeline-Upgrades für Apache Iceberg CDC. Außerdem werden mit der Transformation nur Snapshots verarbeitet, die nur angehängte Daten enthalten. Vollständige CDC-Änderungsstreams werden noch nicht unterstützt. Informationen zu standardmäßigen Batch-Lese- oder ‑Schreibvorgängen für andere Katalogtypen finden Sie unter Managed I/O.
Leistungsspektrum
Managed I/O unterstützt die folgenden Funktionen für Apache Iceberg:
| Kataloge |
|
|---|---|
| Lesefunktionen | Batchlesevorgang |
| Schreibfunktionen |
|
Verwenden Sie für BigQuery-Tabellen für Apache Iceberg den BigQueryIO-Connector mit der BigQuery Storage API. Die Tabelle muss bereits vorhanden sein. Das dynamische Erstellen von Tabellen wird nicht unterstützt.
Beschränkungen
- Apache Iceberg CDC wird nur über die Managed API unterstützt. Die Funktionen des Dienstes für verwaltete Transformationen sind noch nicht aktiviert. Änderungen, die sich auf die Abwärtskompatibilität auswirken, sind zu erwarten
- Die CDC Managed API liest nur Snapshots, die nur angehängt werden. Die vollständige CDC ist noch nicht verfügbar.
Vorbereitung
- Lakehouse einrichten Konfigurieren Sie Ihr Google Cloud -Projekt mit den erforderlichen Berechtigungen. Folgen Sie dazu der Anleitung unter Lakehouse-Laufzeitkatalog mit dem Iceberg-REST-Katalog verwenden. Machen Sie sich mit den auf dieser Seite beschriebenen Einschränkungen des Lakehouse Iceberg-REST-Katalogs vertraut.
- Iceberg-Quelltabelle erstellen Im hier gezeigten Beispiel wird davon ausgegangen, dass Sie eine Apache Iceberg-Tabelle haben. Dazu können Sie die Pipeline verwenden, die unter Streaming Write to Apache Iceberg with Lakehouse REST Catalog beschrieben wird.
Abhängigkeiten
Fügen Sie Ihrem Projekt die folgenden Abhängigkeiten hinzu:
Java
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-sdks-java-managed</artifactId>
<version>${beam.version}</version>
</dependency>
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-sdks-java-io-iceberg</artifactId>
<version>${beam.version}</version>
</dependency>
<dependency>
<groupId>org.apache.iceberg</groupId>
<artifactId>iceberg-gcp</artifactId>
<version>${iceberg.version}</version>
</dependency>
Beispiel
Das folgende Beispiel zeigt eine Streamingpipeline, die CDC-Ereignisse aus einer Apache Iceberg-Tabelle liest, Nutzerklicks aggregiert und die Ergebnisse in eine andere Apache Iceberg-Tabelle schreibt.
Java
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Dataflow zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.