如需从 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>
配置
托管式 I/O 针对 Apache Iceberg 使用以下配置参数:
读取和写入配置 | 数据类型 | 说明 |
---|---|---|
table |
字符串 | Apache Iceberg 表的标识符。示例:
"db.table1" 。 |
catalog_name |
字符串 | 目录的名称。示例:"local" 。 |
catalog_properties |
地图 | Apache Iceberg 目录的配置属性映射。所需的属性取决于清单。如需了解详情,请参阅 Apache Iceberg 文档中的 CatalogUtil 。 |
config_properties |
地图 | 一组可选的 Hadoop 配置属性。如需了解详情,请参阅 Apache Iceberg 文档中的 CatalogUtil 。 |
写入配置 | 数据类型 | 说明 |
triggering_frequency_seconds |
整数 | 对于流式写入流水线,表示缓冲区尝试生成快照的频率,以秒为单位。 |
动态目的地
适用于 Apache Iceberg 的托管式 I/O 支持动态目的地。连接器可以根据传入记录中的字段值动态选择目标表,而不是写入单个固定表。
如需使用动态目的地,请为 table
配置参数提供模板。如需了解详情,请参阅动态目的地。
示例
以下示例展示了如何使用托管式 I/O 写入 Apache Iceberg。
写入 Apache Iceberg 表
以下示例会将内存 JSON 数据写入 Apache Iceberg 表。
Java
如需向 Dataflow 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
使用动态目的地进行写入
以下示例会根据输入数据中的字段写入不同的 Apache Iceberg 表。
Java
如需向 Dataflow 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。