O conector de E/S gerenciada do Apache Beam permite ingerir registros de captura de dados alterados (CDC) de streaming de tabelas do Apache Iceberg usando um catálogo REST do Lakehouse. Essa integração processa atualizações contínuas diretamente nos seus pipelines de streaming.
A E/S gerenciada não oferece suporte a upgrades automáticos de pipeline para CDC do Apache Iceberg. Além disso, a transformação processa apenas snapshots de anexação. Ainda não há suporte para fluxo de alterações completos de CDC. Para leituras ou gravações em lote padrão em outros tipos de catálogo, consulte E/S gerenciada.
Recursos
A E/S gerenciada oferece suporte aos seguintes recursos do Apache Iceberg:
| Catálogos |
|
|---|---|
| Ler recursos | Leitura em lote |
| Capacidades de gravação |
|
Para tabelas do BigQuery para Apache Iceberg,
use o
conector BigQueryIO
com a API BigQuery Storage. A tabela já precisa existir. Não é possível criar tabelas dinâmicas.
Limitações
- A CDC do Apache Iceberg só é compatível com a API gerenciada. Os recursos do serviço de transformações gerenciadas ainda não estão ativados. Mudanças que afetam a compatibilidade com versões anteriores
- A API gerenciada do CDC lê apenas snapshots de anexação. O CDC completo ainda não está disponível.
Pré-requisitos
- Configure o Lakehouse. Configure seu projeto Google Cloud com as permissões necessárias seguindo Usar o catálogo do ambiente de execução do Lakehouse com o catálogo REST do Iceberg. Entenda as limitações do catálogo REST do Lakehouse Iceberg descritas nessa página.
- Crie uma tabela Iceberg de origem. O exemplo mostrado aqui pressupõe que você tenha uma tabela do Apache Iceberg. Para criar um, use o pipeline mostrado em Gravação de streaming no Apache Iceberg com o catálogo REST do Lakehouse.
Dependências
Adicione estas dependências ao projeto:
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>
Exemplo
O exemplo a seguir demonstra um pipeline de streaming que lê eventos de CDC de uma tabela do Apache Iceberg, agrega cliques de usuários e grava os resultados em outra tabela do Apache Iceberg.
Java
Para autenticar no Dataflow, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
A seguir
- Saiba mais sobre E/S gerenciada.
- Saiba mais sobre o catálogo REST do Lakehouse.