mysql数据增量同步到hive

mysql数据增量同步到hive,第1张

同步业务库的数据到ODS层,之前一直是全量同步数据,主要考虑IO太大,耗时太长,重复拉取同样的数据,现在考虑增量同步的方式实现,同时对库表数据做分区。

增量同步主要分为两步,第一步,存量数据一次性同步;第二步,在存量数据的基础之上,做增量;后期的每一次同步都是增量同步。以下是具体同步方案:

用Sqoop同步表中全部数据到Hive表中;

a.根据hive中最大更新时间,用Sqoop提取更新时间为这个时间之后的增量数据;

1)获取表的所有列,把datetime和timestamp类型,统一在java中映射成TIMESTAMP类型,脚本如下:

2) 用sqoop import拉取数据,脚本如下:

1)创建增量同步的sqoop job,脚本如下:

a、从hive中获取表的最大更新时间

b、以上面获取的最大更新时间,作为起点,创建sqoop job,脚本如下:

c、创建sqoop job之后,就是执行job了,脚本如下:

具体参数详解,参考: https://www.cnblogs.com/Alcesttt/p/11432547.html

实时同步的方式,目前来说用MySQL Binlog的比较多

国内的开源方案有

阿里巴巴开源方案 canal

国外的也很多

楼主可以去github上面搜索下 binlog 就知道N多方案了

Hive怎么与oracle,mysql,ebd等数据库同步数据

当然不是,hive支持jdbc和odbc数据源连接,可以连接很多种数据库,mysql、oracle等等等等,它自己的metastore用的就是derbyDB。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7316428.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存