首页标签分类
07datax
2024-06-03 · 更新 2026-03-03约 2 分钟 · 487 字
大数据杂文记
000

目录

Datax
datax 与sqoop的比较
datax使用方法及其用途
选用datax的原因
使用datax时遇到的问题
datax的优化
datax如何保证数据的一致性

Datax

datax 与sqoop的比较

  1. 数据量方面,datax较sqoop支持的数据量更小
  2. 支持的数据源,data使用插件式,支持的数据源更多
  3. 社区的活跃度,datax阿里开源,社区活跃,sqoop目前已经停止维护
  4. 运行方式,datax使用单进程多线程运行,sqoop基于MR,为分布式
  5. 同步数据时,数据监控指标丰富

datax使用方法及其用途

使用方法:

  • 生成需要全量同步每张表的的配置文件,为json格式,包括了使用的reader,writer类型,指定并发数
  • 使用python 命令运行配置文件,同步数据
    用途:
  • 离线数据仓库中从mysql同步数据到hdfs;从ads层同步数据到用于可视化的数据库mysql中

选用datax的原因

同datax和sqoop的比较

使用datax时遇到的问题

  1. 从mysql导数据到hdfs时,遇到的null处理,开源的datax没有 提供HDFS Writer的null处理,默认的从mysql读取的null,存储为空字符串 '',而hive在null存储为 \N,导致读取数据失误,解决办法:在hive建立ods层表时指定将 ''识别为null,NULL DEFINED AS ''
  2. 字段误读的问题
    mysql中存储数据时,使用了hive的的字段分割符或者其他特殊字符,比如\r\n,可使用datax的transfromer功能对数据进行转化

datax的优化

  1. 内存提高
  2. 同步表的并发多线程设置 直接指定: 我们用这种方式, 指定5

datax如何保证数据的一致性

  1. 同步失败重试的功能,保证数据不丢
  2. 提供了类事务的处理,在写数据时,修改文件的后缀,数据写入成功,修改文件的后缀为原本的格式,项目中mysql到hdfs,使用了gzip压缩;数据写入失败,删除临时文件

本文作者:hedeoer

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!