基于HBase的工业大数据存储实战物品追踪系统中的CAN总线协议应用

基于HBase的工业大数据存储实战物品追踪系统中的CAN总线协议应用

随着工业4.0时代的到来,工业互联网和企业的智能化、信息化都将不断推进,传统的工业实时数据库和关系数据库已经难以完全胜任工业大数据的存储,以HBase为代表的NoSQL数据库正在蓬勃发展,其完全分布式特征、高性能、多副本和灵活的动态扩展等特点,使得HBase在工业大数据的存储上拥有强大的优势,打破了流程工业生产中的数据壁垒效应,促进了生产水平和管理水平的大幅提升。本期格物汇,就来给大家介绍HBase数据库及格创东智相关实战案例。

了解HBase

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。它利用Hadoop HDFS作为其文件存储系统,将海量数据处理能力通过MapReduce框架实现。与传统数据库相比,HBASE具备多重优势:线性扩展,可以根据需求增加节点;数据存储在hdfs上,有健全备份机制;通过zookeeper协调服务,可以快速访问。

HBase实战案例

为了更好地理解如何利用HBase进行实际应用,我们可以看一个半导体显示企业如何使用它设计出一个快速查找面板特征系统。

这个公司业务场景中有很多面板相关特征,每张面板数据大概3.2k。这些建议又被分成很多组,每个面板属于某个组。现有的业务需求主要是根据组id查找该组下面的所有面板,以及根据组id+面板id查找某个具体面的版。

原有方案:MySQL+OSS

之前使用的是MySQL+OSS(对象存储),表结构如下:

group表:

group_id (size 12)

face表:

glass_id (group_id + featureTB7B3695BA051CASBA)

其中feature(特征)大小为3.2k,是二进制数据base64后存入OSS中的,这就是真实面的版特征数据。现在需要查询的时候,因为每个面的版可能包含1~10000张玻璃,所以基于这样的表设计,我们需要将玻璃对应关系存在每一行中,那么同一群里的玻璃就必须存在很多行。如果要根据群找到所有玻璃,那么需要从MySQL读取大量行,然后到OSS拿这些玻璃相关的特征,这样的查询链路非常长,在10秒内完成不了,不满足业务要求。

HBase解决方案

针对以上问题,我们用到了以下几个方面:

使用动态列支持万亿行百万列。

支持多版本记录所有修改。

引入MOB(Medium-SizedObject)功能,对于小文件(1k~10MB)具有低延迟读写强一致检索能力强易扩展等关键能力。

最后我们重新设计了原来方案,将glassId作为RowKey,在创建表的时候打开MOB功能,如下所示:

create 'glass', {NAME=>'c', IS_MOB=>true, MOB_THRESHOLD=>2048}

这样我们只用了一张表替换掉了之前三张表!虽然启用了MOB,但是插入方法跟正常一样,只是代码稍微复杂一点。但是用户如果想要获取某个群下的所有玻璃,只需一次Get操作即可完成,而不是像以前那样需要从MySQL扫描大量行再到OSS拿这些玻璃相关的一切。这不仅提高了查询速度,还减少了成本。在这个案例中,我们可以看到当我们的业务场景适合使用这种模式时,它能够提供极大的便利,并且能帮助我们更好地处理各种类型的大规模结构化或半结构化或非结构化种类广泛且增长迅速的事务性的工作负载。