Dataflow 托管式 I/O

托管式 I/O 连接器是一种 Apache Beam 转换,可提供用于创建来源和接收器的通用 API。

概览

您可以使用 Apache Beam 代码创建托管式 I/O 连接器,就像创建任何其他 I/O 连接器一样。您可以指定要实例化的来源或接收器并传入一组配置参数。 您还可以将配置参数放入 YAML 文件中,并提供该文件的网址。

在后端,Dataflow 将托管式 I/O 连接器视为服务,让 Dataflow 能够管理连接器的运行时操作。然后,您可以专注于流水线中的业务逻辑,而无需管理这些细节。

如需详细了解托管式 I/O API,请参阅 Apache Beam Java SDK 文档中的 Managed

Apache Iceberg

对于 Apache Iceberg,托管式 I/O 使用以下配置参数:

名称 数据类型 说明
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 Kafka

对于 Apache Kafka,受管 I/O 使用以下配置参数。

读取和写入配置 数据类型 说明
bootstrap_servers 字符串 必填。Kafka 引导服务器的英文逗号分隔列表。示例:localhost:9092
topic 字符串 必填。要从中读取数据的 Kafka 主题。
file_descriptor_path 字符串 协议缓冲区文件描述符集的路径。仅在 data_format"PROTO" 时适用。
data_format 字符串 消息的格式。支持的值:"AVRO""JSON""PROTO""RAW"。默认值为 "RAW",用于读取或写入消息载荷的原始字节。
message_name 字符串 协议缓冲区消息的名称。如果 data_format"PROTO",则必须提供此值。
schema 字符串

Kafka 消息架构。预期的架构类型取决于数据格式:

对于读取流水线,如果设置了 confluent_schema_registry_url,则会忽略此参数。

读取配置
auto_offset_reset_config 字符串

指定在 Kafka 服务器上没有初始偏移量或当前偏移量不存在时执行的行为。支持以下值:

  • "earliest":将偏移重置为最早的偏移。
  • "latest":将偏移重置为最新偏移。

默认值为 "latest"

confluent_schema_registry_subject 字符串 Confluent 架构注册表的主题。如果指定了 confluent_schema_registry_url,则必须使用此属性
confluent_schema_registry_url 字符串 Confluent 架构注册表的网址。如果指定,则系统会忽略 schema 参数。
consumer_config_updates 地图 为 Kafka 使用方设置配置参数。如需了解详情,请参阅 Kafka 文档中的使用方配置。您可以使用此参数自定义 Kafka 使用方。
max_read_time_seconds int 最大读取时间,以秒为单位。此选项会生成有边界的 PCollection,主要用于测试或其他非生产场景。
写入配置
producer_config_updates 地图 为 Kafka 提供方设置配置参数。如需了解详情,请参阅 Kafka 文档中的提供方配置。您可以使用此参数来自定义 Kafka 提供方。

如需读取 Avro 或 JSON 消息,您必须指定消息架构。如需直接设置架构,请使用 schema 参数。如需通过 Confluent 架构注册表提供架构,请设置 confluent_schema_registry_urlconfluent_schema_registry_subject 参数。

如需读取或写入 Protocol Buffer 消息,请指定消息架构或设置 file_descriptor_path 参数。