适用于数据库的 Dataflow 托管式 I/O
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
Dataflow 支持使用 Java Database Connectivity (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 源的密码。
|
|
read_query
|
str
|
用于查询 JDBC 源的 SQL 查询。
|
|
用户名
|
str
|
JDBC 来源的用户名。
|
POSTGRES 写入
| 配置 |
类型 |
说明 |
|
jdbc_url
|
str
|
JDBC 接收器的连接网址。
|
|
自动分片
|
boolean
|
如果为 true,则允许使用动态确定的分片数量进行写入。
|
|
batch_size
|
int64
|
无
|
|
connection_properties
|
str
|
用于设置传递给 JDBC 驱动程序但尚未定义为独立参数的连接属性(例如,可以使用上述参数相应地设置用户名和密码)。字符串的格式必须为“key1=value1;key2=value2;”。
|
|
位置信息
|
str
|
要写入的表的名称。
|
|
password
|
str
|
JDBC 源的密码。
|
|
用户名
|
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 源的密码。
|
|
read_query
|
str
|
用于查询 JDBC 源的 SQL 查询。
|
|
用户名
|
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 源的密码。
|
|
用户名
|
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 源的密码。
|
|
read_query
|
str
|
用于查询 JDBC 源的 SQL 查询。
|
|
用户名
|
str
|
JDBC 来源的用户名。
|
SQLSERVER 写入
| 配置 |
类型 |
说明 |
|
jdbc_url
|
str
|
JDBC 接收器的连接网址。
|
|
自动分片
|
boolean
|
如果为 true,则允许使用动态确定的分片数量进行写入。
|
|
batch_size
|
int64
|
无
|
|
connection_properties
|
str
|
用于设置传递给 JDBC 驱动程序但尚未定义为独立参数的连接属性(例如,可以使用上述参数相应地设置用户名和密码)。字符串的格式必须为“key1=value1;key2=value2;”。
|
|
位置信息
|
str
|
要写入的表的名称。
|
|
password
|
str
|
JDBC 源的密码。
|
|
用户名
|
str
|
JDBC 来源的用户名。
|
|
write_statement
|
str
|
用于将记录插入 JDBC 接收器的 SQL 查询。
|
后续步骤
如需了解详情和查看代码示例,请参阅以下文档:
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2026-04-11。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2026-04-11。"],[],[]]