datax 做为多数据源之间数据同步的工具,非常方便,速度非常快,能到达30分钟同步3000多万数据的速度,比代码同步速度快
datax同步 步骤:
1.安装好datx同步工具后,访问datax web管理界面, 配置同步任务:
2.数据源管理-->查询带同步的源库ip,目标库ip是否配置了数据源,没有则需要添加数据库源
3.任务管理-->构建任务:1.选择待同步的reader数据库,数据库表名,需同步的字段
4.任务管理-->构建任务:2.选择待同步的writer数据库,数据库表名,需同步的字段(新表可以先随便选择一个表后面修改成待同步的目标表):
点击下一步--点击1构建--点击2选择模板(弹窗选择一个,如mongodb模板)--点击3复制json
5.点击下一步 完成了,在任务管理-->点击 搜索 找到刚才创建的任务名称-->操作--编辑-->若源库是多表同步,需配置多表;目标库用户名/密码,集合/库名,同步的表名/集合名,字段类型,名称,
同步是否根据配置的唯一键覆盖:
"writeMode": {
"isReplace": "true",
"replaceKey": "unique_id"
}
6.在任务编辑页面配置同步频率cron,路由策略:轮询,阻塞处理:丢弃后继调度.
7.案例:从mysql同步部分字段到mongodb:
{
"job": {
"setting": {
"speed": {
"channel": 3,
"byte": 1048576
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "mysql.username",
"password": "mysql.pwd",
"column": [
"id
",
"source_id
",
"asin
",
"country
",
"MD5(concat(country,asin,source_id)) as unique_id",
"update_time
",
"is_deleted
"
],
"splitPk": "",
"connection": [
{
"table": [
"t_amazon_listing_1",
"t_amazon_listing_2",
"t_amazon_listing_3"
],
"jdbcUrl": [
"jdbc:mysql://ip:3306/t_listing_amazon"
]
}
]
}
},
"writer": {
"name": "mongodbwriter",
"parameter": {
"address": [
"ip:8635",
"ip:8635"
],
"userName": "mongodb.username",
"userPassword": "mongodb.pwd",
"dbName": "mongodb.name",
"collectionName": "coll.name",
"column": [
{
"name": "listing_id",
"type": "Long"
},
{
"name": "source_id",
"type": "int"
},
{
"name": "asin",
"type": "String"
},
{
"name": "country",
"type": "String"
},
{
"name": "unique_id",
"type": "String"
},
{
"name": "update_time",
"type": "Date"
},
{
"name": "is_deleted",
"type": "int"
}
],
"writeMode": {
"isReplace": "true",
"replaceKey": "unique_id"
}
}
}
}
]
}
}