Datax
文章平均质量分 88
Shadow_Light
这个作者很懒,什么都没留下…
展开
-
Datax-HdfsWriter如何实现支持Map,List,Set等符合类型数据写入
一、问题背景 之前分析hdfswriter时,看到过api支持map,list,set类型的数据写入,因此,想将其合入到datax里,使得源数据端有类似json,array等这种数据可以直接导入到hive中。二. 环境准备Datax版本:3.0Hadoop版本:2.7.3Hive版本:2.3.2三. 源码 hdfs写入时,最重要的是获取字段对应类型的ObjectInspector,因此直接从ObjectInspectorFactory类入手看:Obje...原创 2020-09-24 17:55:32 · 660 阅读 · 0 评论 -
Datax-Hdfs如何实现支持binary类型数据读写
一、问题背景 主要的源码思路还是按照这篇HdfsWriter如何实现支持decimal类型数据写入来,这里不再介绍。上篇说binary类型写入和读取会有坑,因此这篇主要解释一下坑的地方以及解决的办法。PS:虽说binary类型的字段写入Hive,本人没有想到对于数据仓库建设使用上有什么用处,但是本着好奇、学习的心态,就去研究了一下并集成到datax内。开头附上github地址。二. 环境准备Datax版本:3.0Hadoop版本:2.7.3Hive版本:2.3.2三...原创 2020-09-18 15:04:30 · 1197 阅读 · 0 评论 -
DataX-Mysql主键UUID类型切分主键
一、问题背景之前公司在使用datax时,需要从rds同步数据到hive,但是数据库中的主键id是uuid类型的字符串,使用datax默认的字符串分隔方式,其实会有很大的问题,所以官方也不推荐使用。二. 分析源码跟踪底层源码最终可以定位到这个RangeSplitUtil类上public static String[] doAsciiStringSplit(String left, String right, int expectSliceNumber) { int radix原创 2020-08-05 23:02:36 · 4100 阅读 · 4 评论 -
Datax-HdfsWriter如何实现支持decimal类型数据写入
一、问题背景在做Datax数据同步时,发现源端binary类型的数据无法写入hive端binary类型的字段。看了一下官网文档,DataX HdfsWriter 插件文档,发现是1年前的,不信邪,自己看源码找原因。二. 集群环境Datax版本:3.0三. Datax日志...原创 2020-09-18 03:33:23 · 3269 阅读 · 5 评论 -
Datax-Mysql同步至Hive时时区问题导致日期减少一天
一、问题背景Datax从Mysql数据库到Hive数据同步任务时,发现同步时,date类型字段同步到Hive里中string类型字段时,部分日期会减少一天。二、集群环境Datax版本:3.0三、现象描述mysql数据库时间 Hive数据库中时间 1986-07-17 1986-07-16 1987-06-26 1987-06-25 1987-12-...原创 2019-10-21 12:08:42 · 3868 阅读 · 0 评论 -
记一次DataX-MysqlReader性能优化
一、问题背景最近在做Datax从阿里云rds数据库到Hive数据同步任务时,发现同步耗时很久,500万的数据同步配置了splitPk并配置了50个线程并发需要212s,任务同步的平均速率一直保持在3-4M/s,而本地的Mysql测试数据库同步时不分片的平均速率就能到20M/s。二. 集群环境Rds环境:8000iops; 8core; 16g内存分片字段类型:bigint类...原创 2019-09-12 11:31:20 · 10052 阅读 · 12 评论