datax的各种数据库之间数据传输配置

DataX调度流程:一个DataX作业,并且配置了20个并发,目的是将一个100张分表的mysql数据同步

官网解释:

  1. DataXJob根据分库分表切分成了100个Task。
  2. 根据20个并发,DataX计算共需要分配4个TaskGroup。
  3. 4个TaskGroup平分切分好的100个Task,每一个TaskGroup负责以5个并发共计运行25个Task。
  4. 总结:一个并发:5张表 /  一个TaskGroup:五个并发,25个Task
1、mysqltomysql

        mysqlreader参数说明:

参数是否必须说明
jdbcUrl
username数据源用户名
password数据源密码
table必须在connection中配置
column   [*]表示所有列配置。支持列裁剪,支持列换序,支持常量配置,用户需要按照Mysql SQL语法格式: ["id", "`table`", "1", "'bazhen.csy'", "null", "to_char(a + 1)", "2.3" , "true"] id为普通列名,`table`为包含保留字的列名,1为整形数字常量,'bazhen.csy'为字符串常量,null为空指针,to_char(a + 1)为表达式,2.3为浮点数,true为布尔值。
splitPk表示希望用户使用splitPk代表的字段进行数据分片,推荐使用表主键,可提高效能。仅支持整形数据切分,不支持其他,
whereMysqlReader根据指定的column、table、where条件拼接SQL,并根据这个SQL进行数据抽取。在实际业务场景中,往往会选择当天的数据进行同步,可以将where条件指定为gmt_create > $bizdate 。注意:不可以将where条件指定为limit 10,limit不是SQL的合法where子句。如果不填写where语句,包括where的key和value,将视为全量同步
querysql

用户可以通过该配置型来自定义筛选SQL。当用户配置了这一项之后,DataX系统就会忽略table,column这些配置型,直接使用这个配置项的内容对数据进行筛选,例如需要进行多表join后同步数据,使用select a,b from table_a join table_b on table_a.id = table_b.id。

 

当用户配置querySql时,MysqlReader直接忽略table、column、where条件的配置,querySql优先级大于table、column、where选项。

        mysqlwriter参数说明:

 

参数是否必须说明
jdbcUrl
username数据源用户名
password数据源密码
tabletable 和 jdbcUrl 必须包含在 connection 配置单元中
cloumn

[*]表示所有列配置

**column配置项必须指定,不能留空!**
注意:1、我们强烈不推荐你这样配置,因为当你目的表字段个数、类型等有改动时,你的任务可能运行不正确或者失败

不能配置任何常量

session描述: DataX在获取Mysql连接时,执行session指定的SQL语句,修改当前connection session属性
presql

描述:写入数据到目的表前,会先执行这里的标准语句。

如果 Sql 中有你需要操作到的表名称,请使用 @table 表示,这样在实际执行 Sql 语句时,会对变量按照实际表名称进行替换。

比如你的任务是要写入到目的端的100个同构分表(表名称为:datax_00,datax01, ... datax_98,datax_99),并且你希望导入数据前,先对表中数据进行删除操作,那么你可以这样配置:"preSql":["delete from 表名"],效果是:在执行到每个表写入数据前,会先执行对应的 delete from 对应表名称

postsql写入数据到目的表后,会执行这里的标准语句。(原理同 preSql )
writeMode描述:控制写入数据到目标表采用 insert into 或者 replace into 或者 ON DUPLICATE KEY UPDATE 语句

所有选项:insert/replace/update
batchSize

描述:一次性批量提交的记录数大小,该值可以极大减少DataX与Mysql的网络交互次数,并提升整体吞吐量。但是该值设置过大可能会造成DataX运行进程OOM情况。

默认:1024

        代码:

{
    "job": {
        "setting": {
            "speed": {
                 "channel":1
            }
        },
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "账号",
                        "password": "密码",
                        "column": [
             			 		"id",
								"vegetableBaskets",
								"Times",
								"grainOil",
								"agricultures"
            					],
                        "connection": [
                            {
                                "querySql": [
                                    "SELECT id,vegetableBaskets,Times,grainOil,agricultures FROM post;"
                                ],
                                "jdbcUrl": [
                                    "jdbc:mysql://192.28.66.44:23306/post?useSSL=false"
                                ]
                            }
                        ]
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
          		"parameter": {
            		"username": "账号",
            		"password": "密码",
            		"writeMode": "insert",
					"column": [
              				"id",
							"vegetableBaskets",
							"Times",
							"grainOil",
							"agricultures"
            				],
            		"preSql": [],
					"postSql": [],
            		"session": [],
            		"connection": [
            			{
            		"jdbcUrl": "jdbc:mysql://192.11.10.44:23306/HHH?useSSL=false",
            		"table": ["post"]
            		
                
                 }
               ]
             }
          }
       }
     ] 
   }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值