一. DataX3.0概念
dataX是一个异构数据源离线同步工具,实现包括关系型数据库(MySQL,Oracle.....)、hdfs、hive、odps、hbase等各种异构数据源之间稳定高效的数据同步功能。
二、DataX3.0框架设计
DataX作为离线数据同步框架,采用Framework + plugin架构构建。
-
Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
-
Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
-
Framework:Framework用于连接reader和writer,是两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。
三、DataX 3.0六大核心优势
1.可靠的数据质量监控
-
完美解决数据传输个别类型失真问题
-
提供作业数据量运行时监控
-
提供脏数据探测
2.丰富的数据转换功能
3.精准的速度控制
"speed": {
"channel": 5,
"byte": 1048576,
"record": 10000
}
4.强劲的同步性能
5.健壮的容错机制
6.极简的使用体验
四、DataX与Sqoop区别
| 功能 | DataX | Sqoop |
|---|---|---|
| 运行模式 | 单进程多线程 | MR |
| 分布式 | 不支持,可以通过调度系统规避 | 支持 |
| 流控 | 有流控功能 | 需要定制 |
| 统计信息 | 已有一些统计,上报要定制 | 没有,分布式的数据收集不方便 |
| 数据校验 | 在core部分有校验功能 | 没有,分布式的数据收集不方便 |
| 监控 | 需要定制 | 需要定制 |
五、DataX部署
1.下载
github上下载安装包并上传到master中
地址:https://github.com/alibaba/DataX
2.解压并配置环境变量
tar -zxvf datax.tar.gz
3.检查是否安装成功
[root@master datax]#python ./bin/datax.py ./job/job.json
六、DataX使用
dataX生成模板的命令:datax.py -r mysqlreader -w hdfswriter
{
"job": {
"content": [
{
"reader": {
"name": "streamreader",
"parameter": {
"column": [{
"type":"string",
"value":"dataX"
},
{
"type":"string",
"value":"生成模板的"
},
{
"type":"string",
"value":"命令"
}],
"sliceRecordCount": 10
}
},
"writer": {
"name": "streamwriter",
"parameter": {
"encoding": "UTF-8",
"print": true
}
}
}
],
"setting": {
"speed": {
"channel": 2
}
}
}
}
1.使用说明
1.1 DataX任务提交命令
python ./bin/datax.py ./job/job.json datax.py xxx.json
1.2 DataX配置文件格式
mysql->hdfs [root@master datax]# datax.py -r mysqlreader -w hdfswriter
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"column": [],
"connection": [
{
"jdbcUrl": [],
"table": []
}
],
"password": "",
"username": "",
"where": ""
}
},
"writer"

最低0.47元/天 解锁文章
1593

被折叠的 条评论
为什么被折叠?



