基于HBase的工业大数据存储实战物品追踪系统中的can通讯协议命令解析

基于HBase的工业大数据存储实战物品追踪系统中的can通讯协议命令解析

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

了解HBase

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。它利用Hadoop HDFS作为其文件存储系统,将海量数据处理成结构化格式,从而实现快速查询与分析。Google Bigtable是Google公司开发的一种分布式键值对数据库,而HBASE则是Bigtable的一个开源版本,但两者之间存在差异,如使用文件系统不同(GFS vs HDFS)、处理方式不同(MapReduce vs 内部优化)以及协同服务不同(Chubby vs ZooKeeper)。

与传统数据库相比,HBASE具有以下优势:

线性扩展:随着数据量增加,可以通过节点扩展进行支撑。

高可靠性:通过复制机制确保了数据安全。

高性能读写:利用Zookeeper协调访问速度快。

HBase在物品追踪场景中的应用

为了更好地理解如何利用HBASE设计出一个快速查找面板特征系统,我们以某半导体显示企业为案例进行分析。在这个企业中,每个面板都有其独特的特征,这些特征需要被记录并能够快速检索。由于每个面板可能包含大量特征,因此传统关系型数据库如MySQL无法有效地处理这种类型的大规模结构化数据。

实战案例

问题描述

当前业务场景中,有大量面板相关的特征数据,每张面板都有三千二百六十四字节大小且分属于不同的组,每个组可能包含从一张到十万张面的数量不等。此外,还有两个主要业务需求:

根据组id查找该组下所有面的信息。

根据组id+face id查找某个具体面的详细信息。

原方案分析

原有的解决方案采用的是MySQL+OSS,对于group表采用行级锁定,对于face表采用列族级别锁定。但是,由于每个group下的faces数量巨大,该方案存在两个问题:

数据冗余过多,因为同一条原始记录被拆分成了多行。

查询效率低下,因为需要先从MySQL获取group-id,然后再从OSS获取对应faces' feature data.

Hbase解决方案

为了解决上述问题,我们可以使用hbase来重新设计我们的表结构。首先,我们将group_id设置为rowkey,并且启用MOB(Medium-SizedObject)功能,这样可以支持小文件存储,比如图片或视频等内容。此外,我们还可以根据face_id创建动态列名,这样我们就可以直接通过rowkey + face_id来访问所需feature data,无需像之前那样扫描整个table或者跨越不同的storage system。这简洁明了地避免了原来的冗余操作,并显著提高了查询效率。

性能测试结果

对比对象存储云与hbase建模能力,以及前缀查找、过滤器索引性能优劣,在复杂查询场景下,比对象存储有10倍以上性能提升,同时成本按流量请求次数计费,更适合高并发、高吞吐场景,有更低成本。

综上所述,通过在实际应用中结合hbase MOB功能以及动态列命名技术,可以极大地提高物品追踪系统中的查询速度和效率,为满足现代商业需求提供了一套更加合理有效的手段。