DTStack ChunJun MySQL数据源连接器使用指南
一、概述
DTStack ChunJun是一款强大的数据集成工具,其中的MySQL连接器组件能够高效地从MySQL数据库中读取数据。本文将详细介绍MySQL Source连接器的功能特性、参数配置和使用方法。
二、功能特性
- 全量数据读取:支持从MySQL数据库批量读取全量数据
- 增量轮询:支持基于时间戳或自增ID的增量数据轮询机制
- 并行读取:可通过splitPk参数实现数据分片并行读取
- 自定义查询:支持通过SQL语句自定义数据查询逻辑
- 数据类型支持:兼容MySQL绝大多数数据类型
三、连接配置详解
1. 基础连接参数
jdbcUrl:MySQL数据库连接字符串,格式为:
jdbc:mysql://host:port/database?useSSL=false
username/password:数据库访问凭证,建议使用具有只读权限的账户
schema:指定数据库schema名称(可选)
table:需要读取的数据表名称,目前仅支持单表读取
2. 性能优化参数
fetchSize:控制每次从数据库读取的记录数,默认为1024。适当增大此值可提高读取效率,但设置过大会导致内存溢出。
splitPk:当需要并行读取时,指定用于数据分片的字段。最佳实践是选择分布均匀的主键字段。
queryTimeOut:设置查询超时时间(秒),大数据量查询时建议适当增加。
3. 数据过滤参数
where:支持SQL WHERE子句条件过滤,如:
"where": "create_time > '2023-01-01'"
customSql:自定义完整查询语句,可实现复杂查询逻辑。使用时需注意:
- 必须明确指定返回字段
- 不能包含非查询语句
- 会覆盖table参数
4. 增量轮询配置
polling:设置为true开启轮询模式
pollingInterval:轮询间隔时间(毫秒),默认5000
increColumn:指定增量字段(时间戳或自增ID)
startLocation:增量起始位置,不指定则自动获取当前最大值
四、数据类型映射
MySQL数据类型与ChunJun类型的对应关系如下:
| MySQL类型 | ChunJun类型 | |-----------|------------| | 整数类型 | INT/BIGINT | | 浮点类型 | DOUBLE | | 字符串类型 | STRING | | 日期时间 | TIMESTAMP/DATE | | 二进制数据 | BLOB | | JSON | JSON |
注意:复杂类型如ARRAY、MAP等暂不支持。
五、最佳实践
1. 全量数据同步配置示例
{
"job": {
"content": [{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "root",
"password": "123456",
"connection": [{
"jdbcUrl": ["jdbc:mysql://127.0.0.1:3306/test"],
"table": ["user"]
}],
"column": ["*"],
"fetchSize": 2048
}
}
}]
}
}
2. 增量轮询配置示例
{
"polling": true,
"pollingInterval": 10000,
"increColumn": "update_time",
"startLocation": "2023-01-01 00:00:00"
}
3. 并行读取配置示例
{
"speed": {
"channel": 4
},
"splitPk": "id"
}
六、常见问题
- 内存溢出:适当减小fetchSize值,或增加JVM内存配置
- 增量数据重复:设置useMaxFunc为true可避免最后几条数据重复
- 查询超时:大数据量查询时增加queryTimeOut值
- 并行读取不均:选择分布均匀的分片字段
七、注意事项
- MySQL版本需5.x及以上
- 增量轮询字段建议建立索引
- 生产环境密码应加密处理
- 大数据量导出建议在业务低峰期进行
通过合理配置这些参数,您可以高效稳定地从MySQL数据库抽取数据,满足各类数据集成需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考