常用数据抽取工具:kattle sqoop datax streamsets
streamsets kattle:偏向etl,数据会做处理
sqoop datax:偏向数据同步,数据不做处理直接拿
streamsets主要是对一些数据做ETL处理,如果单纯做数据同步的话用阿里的datax速度更快,效率更高
datax的详细教程可以去官网看 https://github.com/alibaba/DataX
在我这里可以重点参考一下第3点,生产中的shell脚本配置
1.datax介绍
异构数据源离线同步工具
这是一个单机多任务的ETL工具(单机多线程)
框架设计
DataX采用Framework + plugin架构构建
数据源 ===> ReadPlugin -> FrameWork -> WritePlugin ===> 目的端
Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
Writer: Writer为数据写入模块,负责不断的从Framework取数据,并将数据写入到目的端。
Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。
"speed": {
"channel": 8, ----并发数限速(根据自己CPU合理控制并发数)
"byte": 524288, ----字节流限速(根据自己的磁盘和网络合理控制字节数)
"record": 10000 ----记录流限速(根据数据合理空行数)
2.编写json任务时注意点:
-
reader过程url有[],writer过程没有[]
-
可以通过命令查看配置模板: python datax.py -r {YOUR_READER} -w {YOUR_WRITER}
-
不支持目的端自动建表&#x