Pour lire les événements de capture de données modifiées (CDC) à partir d'Apache Iceberg à l'aide du catalogue REST Lakehouse pour Apache Iceberg, utilisez le connecteur d'E/S géré Apache Beam.
Les E/S gérées sont compatibles avec les fonctionnalités suivantes pour Apache Iceberg :
| Catalogues |
|
|---|---|
| Fonctionnalités de lecture | Lecture par lots |
| Fonctionnalités d'écriture |
|
Pour les tables BigQuery pour Apache Iceberg, utilisez le connecteur BigQueryIO avec l'API BigQuery Storage. La table doit déjà exister. La création de tables dynamiques n'est pas prise en charge.
Limites
- La CDC Apache Iceberg n'est compatible qu'avec l'API gérée. Les fonctionnalités du service de transformations gérées ne sont pas encore activées. Attendez-vous à des modifications qui affectent la rétrocompatibilité
- L'API CDC Managed ne lit que les instantanés en mode ajout uniquement. La fonctionnalité de couverture et de disponibilité des données complètes n'est pas encore disponible.
Prérequis
- Configurez Lakehouse pour Apache Iceberg. Configurez votre projet Google Cloud avec les autorisations requises en suivant Utiliser le catalogue d'exécution Lakehouse avec le catalogue REST Iceberg. Assurez-vous de bien comprendre les limites de Lakehouse pour le catalogue REST Apache Iceberg décrites sur cette page.
- Créez une table Iceberg source. L'exemple présenté ici suppose que vous disposez d'une table Apache Iceberg. Pour en créer un, vous pouvez utiliser le pipeline présenté dans Écriture de flux de données dans Apache Iceberg avec Lakehouse pour le catalogue Apache Iceberg REST.
Dépendances
Ajoutez les dépendances suivantes au projet :
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>
Exemple
L'exemple suivant illustre un pipeline de traitement en flux continu qui lit les événements CDC à partir d'une table Apache Iceberg, agrège les clics des utilisateurs et écrit les résultats dans une autre table Apache Iceberg.
Java
Pour vous authentifier auprès de Dataflow, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Étapes suivantes
- En savoir plus sur Managed I/O
- En savoir plus sur Lakehouse pour le catalogue REST Apache Iceberg