基于HBase的工业大数据存储实战物品追踪管理系统中的CAN总线应用
随着工业4.0时代的到来,工业互联网和企业的智能化、信息化都将不断推进,传统的工业实时数据库和关系数据库已经难以完全胜任工业大数据的存储,以HBase为代表的NoSQL数据库正在蓬勃发展,其完全分布式特征、高性能、多副本和灵活的动态扩展等特点,使得HBase在工业大数据的存储上拥有强大的优势,打破了流程工业生产中的数据壁垒效应,促进了生产水平和管理水平的大幅提升。本期格物汇,就来给大家介绍HBase数据库及格创东智相关实战案例。
了解HBase
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。它利用Hadoop HDFS作为其文件存储系统,将海量数据处理由MapReduce进行。与Google Bigtable相比,它使用Zookeeper作为协同服务,而不是Chubby。在传统数据库中,HBASE具备线性扩展能力,即随着数据量增多可以通过节点扩展进行支撑;其次,它把数据存储在hdfs上,有健全备份机制;最后,它通过zookeeper协调访问速度快。
HBase实战案例
为了更好地展示如何利用HBase在人工智能场景下运用,我们选取了一家半导体显示企业作为案例。该公司业务场景中有大量面板相关特征,每张面板数据约3.2k字节。这些建面板又被分成不同的组,每个面板特征属于某一组。组与面的数目如下:
43%左右的小组只含1张面板;
47%左右的小组含有2~9张面的不同数量;
剩余小群则是10~10000张;
现在业务需求主要包括两类:根据一个小群ID查找该小群下的所有面的数据;或者根据小群ID加上一个面的ID查找某个具体面的详细信息。
原方案:MySQL+OSS
之前由于业务量较少,因此采用MySQL以及OSS(对象存储)进行存储。一开始表设计包含两个主要表:group表(保存每个小群信息)和face表(保存每个脸部或物品)的详细特征)。
然而,由于每个小团体可能包含极广泛数量的事务(从1到10000),这种设计会导致巨大的查询时间延迟,因为需要遍历许多行才能获取所需的事务,并且需要跨越两个不同的系统。
HBase解决方案
为了克服这些问题,我们引入了新的方案基于NoSQL数据库—Apache Hbase。这项技术具有以下优点:
支持动态列 - 可以轻松处理各种长度不一的事务。
多版本 - 记录所有修改并保持历史记录。
MOB(Medium-SizedObject)功能 - 支持1K至10MB大小的事务,如图片或视频等。
我们重新设计了整个应用场景,将每个事务唯一标识符——"玻璃id"设置为rowkey,同时开启MOB功能使得这个属性成为“medium-sized object”。这样,无论事务是否非常大,都能快速读写而不会产生额外开销。此外,这种方法还简化了我们的代码结构,从三个MySQL表减少到了仅一个名为glass Hbase 表,其中行键用于唯一标识事务,而列名用于表示各事项类型,比如feature_01, feature_02等。
性能对比分析
虽然直接使用对象存储云提供商似乎是个简单直观选择,但实际情况下,在复杂查询环境中,他们无法匹敌基于MOB(Hbase)模式实现高速查询效率提升。而且,不同于按流量计费方式,这种托管服务适合低访问频率操作,但对于高并发、大吞吐需求来说成本较低,更适合我们的应用场景。在总结上述对比后,我们认为使用带有MOB功能配置好的单一HTable替代过去三张Table明显提高效率减少资源消耗同时降低成本,因而最终决定采纳此策略。
结语
总结以上内容,可以看出,在现今快速发展的人工智能领域,大规模复杂结构化关联型任务往往要求新兴非关系型数据库尤其是像Apache Hbase这样的分布式NoSQL解决方案来满足用户需求。无论是在确保高性能、自动负载均衡还是即时扩展性方面,Hbase都是理想之选。但是,不要忽视它也有一些局限,比如对于高度交易性的工作负载可能不够完美,而且它并不支持ACID标准,所以我们必须仔细权衡项目需求再做出选择。如果你的项目涉及到海量结构化关联型任务并且希望能够实现实时搜索检索,那么考虑使用Apache Cassandra或者其他类似的产品也是值得探讨的话题。