在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
如何解决HBase海量数据高效入仓的问题?数据仓库的数据来源于各方业务系统,高效准确的将业务系统的数据同步到数仓是数仓建设的根本。部分业务数据存储在HBase中,这部分数据体量较大达到数十亿。大数据需要增量同步这部分业务数据到数据仓库中进行离线分析,目前主要的同步方式是通过HBase的hive映射表来实现的。
这种方式目前存在的缺陷:需要对HBase表进行全表扫描对HBase库有一定压力同步数据同步速度慢;业务方对HBase表字段变更之后需要重建hive映射表给权限维护带来一定的困难;业务方对HBase表字段的变更无法得到有效监控无法及时感知字段的新增,对数仓的维护带来一定的困难;业务方更新数据时未更新时间戳导致通过时间戳字段增量抽取时数据缺失;业务方对表字段的更新新增无法及时感知导致字段不全需要回溯数据。
基于以上背景对HBase数据增量同步到数仓的场景给出了通用的解决方案,解决了以上这些痛点。
二、解决HBase海量数据高效入仓的方案简述
1、数据入仓构建流程
2、HBase数据入仓方案实验对比
分别对以上三种实现方案进行合理性分析:
方案一:
使用HBase的hive映射表。
此种方案实现方式简单,但是不符合数仓的实现机制,主要原因有:HBase表虽然是Hadoop生态体系的NoSQL数据库,但是其作为业务方的数据库,直接通过hive映射表读取,就类比于直接读取业务方Mysql中的视图,可能会对业务方数据库造成一定压力,甚至会影响业务的正常运行,违反数仓尽可能低的影响业务运行原则。
通过hive映射表的方式从实现方式上来讲,增加了与业务方的耦合度,违反数仓建设解耦原则。所以此种方案在此实际应用场景中是不应该采取的方案。
方案二:
根据业务表中的时间戳字段,抓取增量数据。
由于HBase是基于rowKey的NoSQL数据库,所以会存在以下几个问题:需要通过Scan全表,然后根据时间戳(updateTime)过滤出当天的增量,当数据量达到千万甚至亿级时,这种执行效率就很低,运行时长很长。由于HBase表更新数据时,不像MySQL一样,能自动更新时间戳,会导致业务方没有及时更新时间戳,那么在增量抽取数据的时候,会造成数据缺失的情况。所以此种方案存在一定的风险。
方案三:
根据HBase的timeRange特性(HBase写入数据的时候会记录时间戳,使用的是服务器时间),首先过滤出增量的rowKey,然后根据这些rowKey去HBase查询对应的数据。这种实现方案同时解决了方案一、方案二的问题。同时,能够有效监控业务方对HBase表字段的新增情况,避免业务方未及时通知而导致的数据缺失问题,能够最大限度的减少数据回溯的频率。
综上采用方案三作为实现HBase海量数据入仓的解决方案。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
实现大数据可视化的十个出发点
实现大数据可视化的十个出发点,需要考虑用户、讲述连贯的故事、迭代设计、个性化一切、从分析目标开始、考虑管理、对观看者的同理心、了解业务、连接可视化、尽可能简化,以便解决手头的假设问题。
10446
2019-04-24 19:16:12
大数据时代带给我们的重大变革
无论是大数据、人工智能还是区块链都预示着科技的力量会将我们的日常生活带来巨大的变革。就目前而言,大数据已经在很多领域得到了实际的应用。也为我们的生活消费带来的巨大的变革。到2020年,世界上每个人每秒将创造7 MB的数据。下面试10个关于大数据未来预测的问题,告诉你大数据时代带给我们的重大变革。
9592
2019-08-09 18:04:05
计算机大数据应用技术就业前景怎么样?
计算机大数据应用技术就业前景怎么样?作为目前最为广泛和热门的新兴技术,计算机大数据应用技术的意义不在于存储海量的的数据信息,而在于对这些数据进行专业化处理,从而更好地辅助工作中的各项决策。因此,掌握了计算机大数据应用技术,其就业前景自然广阔明亮无比。关于大数据的更多就业方向选择,我们可以看看以下的具体分析。
12569
2020-01-14 15:33:07
大数据开发为什么要参加系统学习呢?
自从发展大数据产业被写入政府工作报告、BAT高薪聘请专业大数据人才之后,很多小白也开始纷纷转行进入大数据领域。很多的转型者都将参加培训机构看成是自己转型最高效的方式。
3536
2020-12-10 15:31:43
转大数据技术开发要学哪些知识点?高效的大数据学习路线推荐
转大数据技术开发要学哪些知识点?高效的大数据学习路线推荐,以往的数据开发需要一定的Java基础和工作经验,门槛高,入门难。如果零基础入门数据开发行业的小伙伴从Python语言入手。Python语言简单易懂,适合零基础入门,在编程语言排名上升最快,能完成数据挖掘。
2916
2022-04-15 11:20:22