设计理念:为了解决异构数据源离线同步工具,datax将网状的同步链路变成了星型数据链路,datax作为中间传载体去连接各种数据源,当需要对接一种新的数据源的时候只需要将新的数据源对接到datax,就能将已有的数据源进行无缝的对接
二、datax3.0框架设计
datax作为离线数据同步框架,采用了framework+plugin架构构建。将数据源读取和写入抽象成reader和writeer插件,纳入到整个数据同步框架中。
Reader:负责数据采集,将数据发送给framework
writeer:负责数据写入,负责从framework中取数据
framework:用于连接两者,作为数据传输通道,并处理缓冲,流控,并发数据转换等技术问题。
三、datax3.0插件体系
前提:一定要安装有jdk和python环境
去官网下载datax解压
替换jdbc驱动包(/plugin/reader/mysqlreader/libs)对应路径下的驱动包为对应的版本
编辑插件maven打包放到writer目录下
任务脚本生成工具包(可生成job任务)在datax/job下生成job任务配置json文件
编辑配置数据同步的json文件
./datax.py …/job/abc.json
定时执行 0 1 * * * nohup python /datax/bin/datax.py …/job/abc.json
-
-
-
-
- ./etc/profile; /usr/bin/pyton /hone/datax/bin/datax.py /json文件路径/abc.json
做曾量同步时要指定数据的范围grnt_create>=‘now()-1day’ and gmt_create<=‘now()’
- ./etc/profile; /usr/bin/pyton /hone/datax/bin/datax.py /json文件路径/abc.json
-
-
-
hdfs_to_clickhouse
{
"job":{
"setting":{
"speed":{
"channel":3
}
},
"content":[
{
"reader":{
"name":"hdfsreader",
"parameter":{
"path":"/user/hive/warehouse/test.db/nnn/*",
"defaultFS":"hdfs://ip:8020",
"column":[
"*"
],
"fileType":"orc",
"encoding":"UTF-8",
"fieldDelimiter":"\u0001"
}
},
"writer":{
"name":"clickhousewriter",
"parameter":{
"batchByteSize":134217728,
"batchSize":65536,
"column":[
"data_id","data_name"
],
"connection":[
{
"jdbcUrl":"jdbc:clickhouse://ip:8123/default",
"table":["dim_table_name"]
}
],
"dryRun":false,
"password":"123",
"postsql"[],
"preSql":[],
"username","default",
"wirteMode":"insert"
}
}
}
]
}
}