07datax
||约 2 分钟 · 487 字|评论
请注意,本文编写于 784 天前,最后修改于 145 天前,其中某些信息可能已经过时。
Datax
datax 与sqoop的比较
- 数据量方面,datax较sqoop支持的数据量更小
- 支持的数据源,data使用插件式,支持的数据源更多
- 社区的活跃度,datax阿里开源,社区活跃,sqoop目前已经停止维护
- 运行方式,datax使用单进程多线程运行,sqoop基于MR,为分布式
- 同步数据时,数据监控指标丰富
datax使用方法及其用途
使用方法:
- 生成需要全量同步每张表的的配置文件,为json格式,包括了使用的reader,writer类型,指定并发数
- 使用python 命令运行配置文件,同步数据
用途: - 离线数据仓库中从mysql同步数据到hdfs;从ads层同步数据到用于可视化的数据库mysql中
选用datax的原因
同datax和sqoop的比较
使用datax时遇到的问题
- 从mysql导数据到hdfs时,遇到的null处理,开源的datax没有 提供HDFS Writer的null处理,默认的从mysql读取的null,存储为空字符串 '',而hive在null存储为
\N,导致读取数据失误,解决办法:在hive建立ods层表时指定将''识别为null,NULL DEFINED AS '' - 字段误读的问题
mysql中存储数据时,使用了hive的的字段分割符或者其他特殊字符,比如\r\n,可使用datax的transfromer功能对数据进行转化
datax的优化
- 内存提高
- 同步表的并发多线程设置 直接指定: 我们用这种方式, 指定5
datax如何保证数据的一致性
- 同步失败重试的功能,保证数据不丢
- 提供了类事务的处理,在写数据时,修改文件的后缀,数据写入成功,修改文件的后缀为原本的格式,项目中mysql到hdfs,使用了gzip压缩;数据写入失败,删除临时文件
版权声明