从 200 多个数据库采集数据到大数据平台,有什么方案?

2017-08-21 17:25:36 +08:00
 curran12

有 200 多个数据库,数据结构大部分一致,SQLServer 和 Oracle 居多,需要采集交易数据到大数据平台,要保证数据准确性,实时性要求不高,大家有什么稳妥的方案?

2780 次点击
所在节点    程序员
9 条回复
noNOno
2017-08-21 17:27:31 +08:00
不知道数据量如何,实时性要求不高,写 ETL 脚本,离线处理调度呗
gouchaoer
2017-08-21 17:30:39 +08:00
你这个需要每天增量备份么,不需要的话用 sqoop 之类的吧
gouchaoer
2017-08-21 17:32:22 +08:00
需要增量备份的话,你是导入 hive 还是 hbase 之类的呢,我的方案是写脚本每天去数据库查询导出成 text 文本,然后脚本再调用 hive 命令行导入 hive
gouchaoer
2017-08-21 17:33:11 +08:00
noNOno
2017-08-21 17:34:10 +08:00
数据接入可以用 hbase 集成 hive。我现在数据处理都是先存入 hbase,然后每日处理,持久化到 hive
curran12
2017-08-21 17:51:21 +08:00
@gouchaoer 既然采集肯定要入仓的,我觉得考虑的地方有几个点:
1、网络稳定性:分为 200 多个库的出口和数据平台入口,200 多个库分布在全国各地,一般都在内网,需要走网络映射,不能保证每次抽取出口网络都正常,而且调度时太大的流量会对数据平台入口网络照成影响,这个需要了解每个库的数据增量来安排调度。
2、某个库采集任务失败后要保证最终采集的数据准确,而且这么多表不可能每天都盯着,需要失败后自动重试
gouchaoer
2017-08-21 17:57:55 +08:00
@curran12 这 2 个需求都不是问题,你应该是每天增量备份的吧,那我这个方法增量备份有个问题就是需要一个自增的 int 的主键,否则你每天增量备份都不知道从哪一行开始读。。。。我也有意写个 php 工具开源出来,sqoop 太难用了
momo4tg
2017-08-21 18:23:57 +08:00
我觉得 hbase 可以作为一个数据备份,先把数据存在 hdfs 中,通过 spark 去重,计算得到的结果再存入 hbase,保证 hbase 里面的数据已经是干净准确的,再根据需要持久化到另外一个库中,比如某个 OLAP 的数据库。楼上说的每天增量备份都不知道从哪一行开始读,你按天增量,计算的时候去重就好了啊,我之前做的一个数据仓库因为主要是各个系统的订单数据,很多都是 T+1 会有更新的,所以 我都是每天读取 D-3 的数据,然后用 spark 作计算的
badttt
2017-08-21 22:09:18 +08:00
阿里的 DataX

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/384619

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX