适用于数据库的 Dataflow 托管式 I/O

Dataflow 支持使用 Java 数据库连接 (JDBC) 从数据库读取数据和向数据库写入数据。Dataflow 使用 Apache Beam JdbcIO 连接器连接到 JDBC 数据源和接收器。数据库的受管理 I/O 支持各种数据库(包括 PostgreSQL、MySQL 和 Microsoft SQL Server)的标准 JDBC 驱动程序。

要求

以下 SDK 支持数据库的托管式 I/O:

  • Java 版 Apache Beam SDK 2.69.0 或更高版本
  • Python 版 Apache Beam SDK 2.69.0 版或更高版本

配置

适用于数据库的托管式 I/O 支持以下配置参数:

POSTGRES 读取

配置 类型 说明
jdbc_url str JDBC 源的连接网址。
connection_properties str 用于设置传递给 JDBC 驱动程序但尚未定义为独立参数的连接属性(例如,可以使用上面的参数相应地设置用户名和密码)。字符串的格式必须为“key1=value1;key2=value2;”。
fetch_size int32 此方法用于替换每次数据库调用中将要提取并加载到内存中的数据的大小。只有在默认值抛出内存错误时,才应使用此参数。
位置信息 str 要从中读取数据的表的名称。
num_partitions int32 分区数
output_parallelization boolean 是否重新混排生成的 PCollection,以便将结果分发给所有工作器。
partition_column str 将用于分区的数字类型列的名称。
password str JDBC 源的密码。可以指定为纯文本密码,也可以指定为 JSON 格式的 Secret 规范(如果与 Secret 管理器搭配使用)。
read_query str 用于查询 JDBC 源的 SQL 查询。
secret_manager str 用于提取 Secret 值的 Secret Manager。可用选项:'GoogleCloudSecretManager'、'GoogleCloudHsmGeneratedSecretManager'。如果未设置,则不使用 Secret Manager,并将密码视为纯文本密码。
用户名 str JDBC 来源的用户名。

POSTGRES 写入

配置 类型 说明
jdbc_url str JDBC 接收器的连接网址。
自动分片 boolean 如果为 true,则允许使用动态确定的分片数量进行写入。
batch_size int64 无
connection_properties str 用于设置传递给 JDBC 驱动程序但尚未定义为独立参数的连接属性(例如,可以使用上面的参数相应地设置用户名和密码)。字符串的格式必须为“key1=value1;key2=value2;”。
位置信息 str 要写入的表的名称。
password str JDBC 源的密码。可以指定为纯文本密码,也可以指定为 JSON 格式的 Secret 规范(如果与 Secret 管理器搭配使用)。
secret_manager str 用于提取 Secret 值的 Secret Manager。可用选项:'GoogleCloudSecretManager'、'GoogleCloudHsmGeneratedSecretManager'。如果未设置,则不使用 Secret Manager,并将密码视为纯文本密码。
用户名 str JDBC 来源的用户名。
write_statement str 用于将记录插入 JDBC 接收器的 SQL 查询。

MYSQL 读取

配置 类型 说明
jdbc_url str JDBC 源的连接网址。
connection_init_sql list[str] 设置驱动程序使用的连接初始化 SQL 语句。只有 MySQL 和 MariaDB 支持此功能。
connection_properties str 用于设置传递给 JDBC 驱动程序但尚未定义为独立参数的连接属性(例如,可以使用上面的参数相应地设置用户名和密码)。字符串的格式必须为“key1=value1;key2=value2;”。
disable_auto_commit boolean 是否停用读取时的自动提交。如果未提供,则默认为 true。是否需要此配置取决于数据库平台。Informix 要求将其设置为 false,而 Postgres 要求将其设置为 true。
fetch_size int32 此方法用于替换每次数据库调用中将要提取并加载到内存中的数据的大小。只有在默认值抛出内存错误时,才应使用此参数。
位置信息 str 要从中读取数据的表的名称。
num_partitions int32 分区数
output_parallelization boolean 是否重新混排生成的 PCollection,以便将结果分发给所有工作器。
partition_column str 将用于分区的数字类型列的名称。
password str JDBC 源的密码。可以指定为纯文本密码,也可以指定为 JSON 格式的 Secret 规范(如果与 Secret 管理器搭配使用)。
read_query str 用于查询 JDBC 源的 SQL 查询。
secret_manager str 用于提取 Secret 值的 Secret Manager。可用选项:'GoogleCloudSecretManager'、'GoogleCloudHsmGeneratedSecretManager'。如果未设置,则不使用 Secret Manager,并将密码视为纯文本密码。
用户名 str JDBC 来源的用户名。

MYSQL 写入

配置 类型 说明
jdbc_url str JDBC 接收器的连接网址。
自动分片 boolean 如果为 true,则允许使用动态确定的分片数量进行写入。
batch_size int64 无
connection_init_sql list[str] 设置驱动程序使用的连接初始化 SQL 语句。只有 MySQL 和 MariaDB 支持此功能。
connection_properties str 用于设置传递给 JDBC 驱动程序但尚未定义为独立参数的连接属性(例如,可以使用上面的参数相应地设置用户名和密码)。字符串的格式必须为“key1=value1;key2=value2;”。
位置信息 str 要写入的表的名称。
password str JDBC 源的密码。可以指定为纯文本密码,也可以指定为 JSON 格式的 Secret 规范(如果与 Secret 管理器搭配使用)。
secret_manager str 用于提取 Secret 值的 Secret Manager。可用选项:'GoogleCloudSecretManager'、'GoogleCloudHsmGeneratedSecretManager'。如果未设置,则不使用 Secret Manager,并将密码视为纯文本密码。
用户名 str JDBC 来源的用户名。
write_statement str 用于将记录插入 JDBC 接收器的 SQL 查询。

SQLSERVER 读取

配置 类型 说明
jdbc_url str JDBC 源的连接网址。
connection_properties str 用于设置传递给 JDBC 驱动程序但尚未定义为独立参数的连接属性(例如,可以使用上面的参数相应地设置用户名和密码)。字符串的格式必须为“key1=value1;key2=value2;”。
disable_auto_commit boolean 是否停用读取时的自动提交。如果未提供,则默认为 true。是否需要此配置取决于数据库平台。Informix 要求将其设置为 false,而 Postgres 要求将其设置为 true。
fetch_size int32 此方法用于替换每次数据库调用中将要提取并加载到内存中的数据的大小。只有在默认值抛出内存错误时,才应使用此参数。
位置信息 str 要从中读取数据的表的名称。
num_partitions int32 分区数
output_parallelization boolean 是否重新混排生成的 PCollection,以便将结果分发给所有工作器。
partition_column str 将用于分区的数字类型列的名称。
password str JDBC 源的密码。可以指定为纯文本密码,也可以指定为 JSON 格式的 Secret 规范(如果与 Secret 管理器搭配使用)。
read_query str 用于查询 JDBC 源的 SQL 查询。
secret_manager str 用于提取 Secret 值的 Secret Manager。可用选项:'GoogleCloudSecretManager'、'GoogleCloudHsmGeneratedSecretManager'。如果未设置,则不使用 Secret Manager,并将密码视为纯文本密码。
用户名 str JDBC 来源的用户名。

SQLSERVER 写入

配置 类型 说明
jdbc_url str JDBC 接收器的连接网址。
自动分片 boolean 如果为 true,则允许使用动态确定的分片数量进行写入。
batch_size int64 无
connection_properties str 用于设置传递给 JDBC 驱动程序但尚未定义为独立参数的连接属性(例如,可以使用上面的参数相应地设置用户名和密码)。字符串的格式必须为“key1=value1;key2=value2;”。
位置信息 str 要写入的表的名称。
password str JDBC 源的密码。可以指定为纯文本密码,也可以指定为 JSON 格式的 Secret 规范(如果与 Secret 管理器搭配使用)。
secret_manager str 用于提取 Secret 值的 Secret Manager。可用选项:'GoogleCloudSecretManager'、'GoogleCloudHsmGeneratedSecretManager'。如果未设置,则不使用 Secret Manager,并将密码视为纯文本密码。
用户名 str JDBC 来源的用户名。
write_statement str 用于将记录插入 JDBC 接收器的 SQL 查询。

后续步骤

如需了解详情和查看代码示例,请参阅以下文档: