基于HBase的工业大数据存储实战
随着工业4.0时代的到来,工业互联网和企业的智能化、信息化都将不断推进,传统的工业实时数据库和关系数据库已经难以完全胜任工业大数据的存储,以HBase为代表的NoSQL数据库正在蓬勃发展,其完全分布式特征、高性能、多副本和灵活的动态扩展等特点,使得HBase在工业大数据的存储上拥有强大的优势,打破了流程工业生产中的数据壁垒效应的瓶颈,可以促进工业生产水平和生产管理水平的大幅度提高。本文将深入探讨HBase数据库及其在格创东智相关实战案例中的应用。
理解HBase
HBase是一个高可靠性、高性能、面向列、可伸缩的大规模分布式存储系统。它利用普通PC服务器构建集群,从而提供低成本且可扩展性的海量数据处理能力。与Google Bigtable相似,但有其独特之处,如使用Hadoop HDFS作为文件系统,而不是GFS;通过MapReduce进行海量数据处理,而不依赖于Bigtable内部机制。
与传统数据库相比,HBASE具有以下优势:
线性扩展:随着数据量增加可以通过节点扩展进行支撑。
数据持久性:通过Zookeeper协调服务确保了高效访问速度。
高吞吐量:适合快速读写大量结构化数据。
HBase 实战案例
为了更好地展示如何利用HBase在人工智能场景下实现快速查找面板特征,我们以某半导体显示企业为案例分析格创东智团队设计出的系统。
该公司业务场景中涉及大量面板相关特征,每张面板含有3.2k二进制代码,这些面板被分组,每个组包含1至10000张面板。现有业务需求主要包括两类查询:
根据组id查找该组下的所有面板。
根据组id+面板id查找具体某个面的记录。
原方案采用MySQL + OSS(对象存储),但由于每个组包含不同数量(1~10000)的玻璃特征,这导致MySQL表中需要创建大量行以保存每个玻璃对应关系。在此基础上,由于MySQL无法直接支持动态列以及针对小文件优化,因此我们转而选择使用基于列族概念的一致性模型——Apache HBASE,它能有效解决以上问题,并满足业务需求。
HBASE 解决方案
优点:
支持动态列,可以根据实际情况添加或删除列,不必预先定义。
多版本控制,对同一条记录可以维护不同的版本历史状态,便于追踪变更历史。
MOB(Medium-Sized Object)功能支持小文件存储,大幅提升小文件操作效率。
表设计:
create 'glass', {NAME=>'c', IS_MOB=>true, MOB_THRESHOLD=>2048}
这里我们创建了一张名为glass表,并打开MOB功能,将所有超过2KB大小的小文件视作MOB进行管理。此外,我们还可以直接使用OSS来替代部分小型图片或者视频等资源。但是,在复杂查询场景下,比如前缀查找、过滤器索引等方面,Hbase表现更佳,而且对于频繁访问的小对象,有较低延迟并且成本更经济。在高并发、高吞吐环境下,hbase能够提供10倍甚至更多性能提升,同时成本按流量计费,更适合高频访问少数公共资源的情况。此外,它也能很好地适应通用范围内(小于10MB)各种类型的小对象,因为它既不限制到单一类型,也不受任何固定的大小限制,所以非常符合我们的需求。这使得整个查询时间从原始10秒左右降至几毫秒级别,为用户带来了极大的便利。