2024-06-03 · 更新 2026-03-03 约 2 分钟 · 487 字 大数据杂文记
0 0 目录 Datax
datax 与sqoop的比较
datax使用方法及其用途
选用datax的原因
使用datax时遇到的问题
datax的优化
datax如何保证数据的一致性
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压缩;数据写入失败,删除临时文件
本文作者: hedeoer
本文链接:
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA
许可协议。转载请注明出处!