基于HBase的工业大数据存储实战物品can协议解析应用
随着工业4.0时代的到来,工业互联网和企业的智能化、信息化都将不断推进,传统的工业实时数据库和关系数据库已经难以完全胜任工业大数据的存储,以HBase为代表的NoSQL数据库正在蓬勃发展,其完全分布式特征、高性能、多副本和灵活的动态扩展等特点,使得HBase在工业大数据的存储上拥有强大的优势,打破了流程工业生产中的数据壁垒效应,促进了生产水平和管理水平的大幅提升。本期格物汇,就来给大家介绍HBase数据库及格创东智相关实战案例。
了解HBase
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。它利用Hadoop HDFS作为其文件存储系统,将海量数据处理成结构化形式,从而实现快速查询与分析。Google Bigtable是GoogleBigtableDB系统,但两者有诸多不同之处,如使用不同的协同服务(Chubby与Zookeeper)以及MapReduce处理方式。
与传统数据库相比,HBASE具备多重优势:
线性扩展,可以通过增加节点进行支撑;
数据存储在hdfs上,备份机制健全;
通过zookeeper协调服务访问速度快。
HBase实战案例
为了更好地介绍HBase在人工智能场景下的应用,我们以某半导体显示企业为案例,对于该公司如何利用HBase设计出一个快速查找面板特征系统进行分析。
这个公司业务场景中包含大量面板相关特征数据,每张面板数据约3.2k字节,并且被分组,每个面板特征属于某个组。根据实际情况,这些组和面板之间存在以下分布:43%左右包含一张面的组;47%左右含有2-9张面的组;剩余部分则范围从10到10000张。现有的业务需求主要涉及两个方面:
根据群体id查找该群体下所有面的数据。
根据群体id+panel id查找具体的一块玻璃上的特定数据。
原方案:MySQL + OSS
之前由于业务规模较小,当时采用的主要是MySQL以及OSS(对象存储)。相关表主要包括group表和face表,其中group表记录的是group_id,而face表记录的是glass_id-group_id对应关系,以及每块玻璃对应的一个feature(即真实面板特征),大小为3.2k字节,该值经过base64编码后再次保存。此外,由于每个群体所包含玻璃数量差异巨大,从1到10000,因此基于这些设计,我们需要将glass_id与corresponding feature id保存在每行中,即使它们属于相同的一批玻璃。在这种情况下,如果要根据group id查询该群体下的所有玻璃,都需要从MySQL读取大量行,然后获取相应关系,再从OSS中提取所有关联features。这导致查询链路非常长,有时候甚至需要10秒以上才能完成,这对于当前快速发展要求来说显然不够满足。
HBase解决方案
针对上述问题,我们采用了新的设计方案:使用单一HBASE表替换原来的三张MySQL/OSS 表。首先我们选择了MOB功能,因为我们的data size介于1KB至10MB之间,同时我们支持动态列并允许多版本控制。这项技术使得我们的新设计具有极高效率,无需像原来那样频繁访问两个不同的底层库也不必担心因行数过多而影响性能。此外,我们还能保持良好的扩展性,因为如果未来需求增加,只需简单添加更多服务器即可支持更大的负载。
性能测试
比较对象云端硬盘(HDFS)能力:
对象云端硬盘K/V键值对操作;
表格类型;
稀疏型;
SQL语句执行;
全文检索能力;
时空/时序图检索;
这类似于直接使用对象云端硬盘,它提供前缀匹配;过滤器;索引功能,但对于小型文件(如视频,图片等),它提供更低延迟并且成本优惠,在复杂查询场景下,比对象云端硬盘有10倍以上提高效率。而且它适合用于高并发、高吞吐量环境,并且按请求次数计费,不依赖流量计费模式,更适合频繁访问少量小型文件的情况。在扩展性方面,它也是最优解,因其可以轻松处理各种大小的小型文件集成成为一个完整单元,而不必考虑拆分或重新组织结构。因此,在此背景下使用hbase-mob功能显得尤为合理有效,能够简化整个操作过程同时提升整体效率,为用户提供更加迅速准确的地图搜索结果输出。而这一切都是基于无需任何额外软件或者配置就能实现这些增强功能,让开发人员专注于应用逻辑本身而非底层技术细节的问题解决,使得整个项目周期缩短,同时也让用户享受到更好的产品质量保证。