在线客服
扫描二维码
下载博学谷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海量数据入仓的解决方案。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
互联网医疗大数据商业变现应用
互联网医疗大数据商业变现应用,2018年《国家健康医疗大数据标准、安全、服务管理办法(试行)》正式出炉,与以往政策不同,该规定不再停留于宏观指导层面,而是对医疗大数据标准、安全、服务中的权责利进行了详细规定。
8104
2019-04-18 18:12:28
怎样学习spark
现在一提到云计算大数据,就会想到spark。要怎样学习spark呢?首先我们需要简单了解一下它:Spark 是一种与 Hadoop 相似的开源集群计算环境,甚至在某些工作负载方面表现得更加优越。Spark采用一个统一的技术堆栈解决了云计算大数据的如流处理、图技术、机器学习、NoSQL查询等方面的所有核心问题,具有非常完善的生态系统,这直接奠定了其一统云计算大数据领域的霸主地位;
6724
2019-08-06 10:20:49
Hadoop集群搭建过程总结
本文主要总结了Hadoop集群搭建的过程,内容包括发行版本说明、Hadoop集群简介、服务器准备、网络环境准备、服务器系统设置以及JDK 环境安装。有学习需要的小伙伴一起来看看吧~
6357
2020-06-18 15:32:40
大数据智能与人工智能的联系和区别
现在进入了互联网时代,提出人工智能概念,人工智能已经在多个领域中实践,比如无人驾驶、图像识别、语音识别等领域。大数据不断采集、沉淀、分类等积累数据,人工智能基于大数据的支持和采集,运用于人工设定的特定性能和运算方式来实现。
6393
2020-07-27 16:48:30
大数据开发工程师需要学习哪些知识点?
大数据开发工程师需要学习哪些知识点?大数据程序员需要有坚实的大数据技术理论基础、了解数据平台、掌握数据存储 HDFS、、日志解析及计算 MR、数据获取和预处理 Flume、结构化查询 Hive、数据获取和预处理 Sqoop、大数据调度框架Azkaban、Scala编程基础等相关知识。
6246
2020-09-03 14:13:34