Il connettore I/O gestito di Apache Beam consente di importare record di streaming Change Data Capture (CDC) dalle tabelle Apache Iceberg tramite un catalogo REST Lakehouse. Questa integrazione elabora gli aggiornamenti continui direttamente all'interno delle pipeline di streaming.
Managed I/O non supporta gli upgrade automatici delle pipeline per Apache Iceberg CDC. Inoltre, la trasformazione elabora solo gli snapshot di tipo append-only. I flussi di modifiche in tempo reale CDC completi non sono ancora supportati. Per letture o scritture batch standard in altri tipi di catalogo, consulta I/O gestito.
Funzionalità
Managed I/O supporta le seguenti funzionalità per Apache Iceberg:
| Cataloghi |
|
|---|---|
| Leggi le funzionalità | Lettura batch |
| Funzionalità di scrittura |
|
Per le tabelle BigQuery per Apache Iceberg,
utilizza il
connettore BigQueryIO
con l'API BigQuery Storage. La tabella deve già esistere; la creazione dinamica della tabella non è supportata.
Limitazioni
- CDC di Apache Iceberg è supportato solo utilizzando l'API gestita. Le funzionalità del servizio di trasformazioni gestite non sono ancora attive. Prevedi modifiche che influiscono sulla compatibilità con le versioni precedenti
- L'API gestita CDC legge solo gli snapshot di sola aggiunta. Il CDC completo non è ancora disponibile.
Prerequisiti
- Configura Lakehouse. Configura il progetto Google Cloud con le autorizzazioni richieste seguendo la procedura descritta in Utilizzare il catalogo di runtime Lakehouse con il catalogo REST Iceberg. Assicurati di comprendere le limitazioni del catalogo REST Iceberg di Lakehouse descritte in quella pagina.
- Crea una tabella Iceberg di origine. L'esempio mostrato qui presuppone che tu abbia una tabella Apache Iceberg. Per crearne uno, puoi utilizzare la pipeline mostrata in Scrittura in streaming in Apache Iceberg con il catalogo REST di Lakehouse.
Dipendenze
Aggiungi le seguenti dipendenze al tuo progetto:
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>
Esempio
Il seguente esempio mostra una pipeline di streaming che legge gli eventi CDC da una tabella Apache Iceberg, aggrega i clic degli utenti e scrive i risultati in un'altra tabella Apache Iceberg.
Java
Per eseguire l'autenticazione in Dataflow, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Passaggi successivi
- Scopri di più su I/O gestito.
- Scopri di più sul catalogo REST Lakehouse.