DataX 是阿里巴巴集團內(nèi)被廣泛使用的離線數(shù)據(jù)同步工具/平臺,實現(xiàn)包括 MySQL、SQL Server琢歇、Oracle巴帮、PostgreSQL、HDFS暇番、Hive、HBase、OTS锈津、ODPS 等各種異構(gòu)數(shù)據(jù)源之間高效的數(shù)據(jù)同步功能。
其官網(wǎng)地址:https://github.com/alibaba/DataX
快速上手步驟
1.下載 DataX:DataX 下載地址
2.配置任務(wù) Json
下載的 DataX 的目錄:
配置 datax/job
文件夾下的 Json:
{
"job":{
"content":[
{
"reader":{
"name":"mysqlreader",
"parameter":{
"column":[
"id",
"resource",
"remark"
],
"connection":[
{
"jdbcUrl":[
"jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8"
],
"table":[
"school_menu"
]
}
],
"password":"123456",
"username":"root"
}
},
"writer":{
"name":"mysqlwriter",
"parameter":{
"column":[
"id",
"resource",
"remark"
],
"connection":[
{
"jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8",
"table":[
"school_test"
]
}
],
"password":"123456",
"username":"root"
}
}
}
],
"setting":{
"speed":{
"channel":"1"
}
}
}
}
任務(wù) Json 由三部分組成凉蜂,分別是讀琼梆,寫和通用配置性誉。
Reader 部分常用參數(shù):
參數(shù)名 | 解釋 | 備注 |
---|---|---|
name | 與要讀取的數(shù)據(jù)庫一致 | 字符串 |
jdbcUrl | 數(shù)據(jù)庫鏈接 | 數(shù)組,會自動選擇一個合法的鏈接茎杂,可以填寫連接附件控制信息 |
username | 數(shù)據(jù)庫用戶名 | 字符串错览,數(shù)據(jù)庫的用戶名 |
password | 數(shù)據(jù)庫密碼 | 字符串,數(shù)據(jù)庫的密碼 |
table | 要同步的表名 | 數(shù)組煌往,需保證表結(jié)構(gòu)一致 |
column | 要同步的列名 | 數(shù)組 |
where | 選取的條件 | 字符串 |
querySql | 自定義查詢語句 | 會自動忽略上述的同步條件 |
Writer 部分常用參數(shù):
參數(shù)名 | 解釋 | 備注 |
---|---|---|
name | 與要讀取的數(shù)據(jù)庫一致 | 字符串 |
jdbcUrl | 數(shù)據(jù)庫鏈接 | 字符串倾哺,可以填寫連接附件控制信息 |
username | 數(shù)據(jù)庫用戶名 | 字符串,數(shù)據(jù)庫的用戶名 |
password | 數(shù)據(jù)庫密碼 | 字符串刽脖,數(shù)據(jù)庫的密碼 |
table | 要同步的表名 | 數(shù)組羞海,需保證表結(jié)構(gòu)一致 |
column | 列名可以不對應(yīng),但是類型和總的個數(shù)要一致 | 數(shù)組曾棕,需保證表結(jié)構(gòu)一致 |
preSql | 寫入前執(zhí)行的語句 | 數(shù)組扣猫,比如清空表等 |
postSql | 寫入后執(zhí)行的語句 | 數(shù)組 |
writeMode | 寫入方式,默認為insert | insert/replace/update |
- job.setting.speed (流量控制)
- Job 支持用戶對速度的自定義控制翘地,channel 的值可以控制同步時的并發(fā)數(shù)申尤,byte 的值可以控制同步時的速度
- job.setting.errorLimit (臟數(shù)據(jù)控制)
- Job 支持用戶對于臟數(shù)據(jù)的自定義監(jiān)控和告警,包括對臟數(shù)據(jù)最大記錄數(shù)閾值(record 值)或者臟數(shù)據(jù)占比閾值(percentage 值)衙耕,當 Job 傳輸過程出現(xiàn)的臟數(shù)據(jù)大于用戶指定的數(shù)量/百分比昧穿,DataX Job 報錯退出。
命令行 cd 到 datax/bin
目錄下橙喘,執(zhí)行 python datax.py ../job/mysqltomysql.json
:
然后看到 school_test 表的數(shù)據(jù):
到此已經(jīng)成功了时鸵。