基于HBase的工业大数据存储实战物品现场总线技术特点应用
随着工业4.0时代的到来,工业互联网和企业的智能化、信息化都将不断推进,传统的工业实时数据库和关系数据库已经难以完全胜任工业大数据的存储,以HBase为代表的NoSQL数据库正在蓬勃发展,其完全分布式特征、高性能、多副本和灵活的动态扩展等特点,使得HBase在工业大数据的存储上拥有强大的优势,打破了流程工业生产中的数据壁垒效应,促进了生产水平和管理水平的大幅提升。本期格物汇,就来给大家介绍HBase数据库及格创东智相关实战案例。
了解HBase
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。它利用Hadoop HDFS作为其文件存储系统,将海量数据处理由MapReduce进行。与Google Bigtable相比,它使用Zookeeper作为协同服务,而不是Chubby。在传统数据库中,HBASE具备线性扩展能力,即随着数据量增多可以通过节点扩展进行支撑;其次,它把数据存储在hdfs上,有健全备份机制;最后,它通过zookeeper协调访问速度快。
HBase实战案例
为了更好地展示如何利用HBase在人工智能场景下应用,我们以某半导体显示企业为案例分析格创东智大数据团队设计快速查找面板特征系统。
这个公司有大量面板相关特征,每张面板包含3.2k二进制数据,这些面板被分成很多组,每个面板属于某个组。现有的业务需求主要是根据组id查找该组下的所有面板,以及根据组id+面板id查找某个具体面的版。
原有方案:MySQL + OSS
之前由于业务量较小,用MySQL以及OSS(对象存储)解决问题,但这种设计存在两个问题:第一,由于每个组可能包含1~10000张面的版,所以原本属于同一条记录内容无法一次性存入一行,从而导致后续查询需要访问两个不同的存储系统;第二,由于MySQL不支持动态列,所以属于同一个面的版被拆分成多行保存。
解决方案:采用HBase
针对这些问题,格创东智的大数据团队认为这是典型适合使用Hbase的情况。因为:
动态列 - 支持万亿行百万列。
版本控制 - 所有修改都会记录在内。
MOB(Medium-SizedObject)功能 - 低延迟读写,一致性检索能力强,可水平扩展,对于文件大小从1k~10MB范围内(如图片短视频文档)的操作尤其适用。
基于这三个功能重新设计方案,将面的版ID作为Rowkey,在创建表的时候打开MOB功能,如下所示:
create 'glass', {NAME=>'c', IS_MOB=>true, MOB_THRESHOLD=>2048}
这样只需一张表替换掉原来三张表,而且仍然保持插入方式的一致性。如果需要根据群ID获取所有面的版,可以直接使用Get方法获取即可。这项改进显著提高了查询速度,并且降低了成本,因为请求次数计费策略更合理。此外,该解决方案还具有更好的扩展性,对于高并发、高吞吐率场景表现出色。