如需从 Dataflow 写入 Apache Iceberg,请使用托管式 I/O 连接器。
托管式 I/O 支持 Apache Iceberg 的以下功能:
目录 |
|
---|---|
读取功能 | 批处理读取 |
写入功能 |
|
对于 Apache Iceberg 的 BigQuery 表,请将 BigQueryIO
连接器与 BigQuery Storage API 搭配使用。该表必须已经存在;不支持动态表格创建。
依赖项
将以下依赖项添加到项目中:
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>
动态目标
适用于 Apache Iceberg 的托管式 I/O 支持动态目标。连接器可以根据传入记录中的字段值动态选择目标表,而不是写入单个固定表。
如需使用动态目标,请为 table
配置参数提供模板。如需了解详情,请参阅动态目标。
示例
以下示例展示了如何使用托管式 I/O 写入 Apache Iceberg。
将数据写入 Apache Iceberg 表
以下示例将内存中的 JSON 数据写入 Apache Iceberg 表。
Java
如需向 Dataflow 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
使用动态目标写入数据
以下示例根据输入数据中的某个字段将数据写入不同的 Apache Iceberg 表。
Java
如需向 Dataflow 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。