基于HBase的工业大数据存储实战物品追踪系统中的Can通讯协议应用
随着工业4.0时代的到来,工业互联网和企业的智能化、信息化都将不断推进,传统的工业实时数据库和关系数据库已经难以完全胜任工业大数据的存储,以HBase为代表的NoSQL数据库正在蓬勃发展,其完全分布式特征、高性能、多副本和灵活的动态扩展等特点,使得HBase在工业大数据的存储上拥有强大的优势,打破了流程工业生产中的数据壁垒效应,促进了生产水平和管理水平的大幅提升。本期格物汇,就来给大家介绍HBase数据库及格创东智相关实战案例。
了解HBase
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。它利用Hadoop HDFS作为其文件存储系统,将海量数据处理成结构化格式,从而实现快速查询与高效分析。与Google Bigtable相比,虽然两者都是基于Column-family(列簇)的设计,但在实际应用中有所不同:Google Bigtable使用GFS作为其文件存储系统,而HBASE则采用的是Hadoop HDFS;Bigtable运行MAPREDUCE来处理海量数据,而同样是通过MapReduce处理大量数据的是HBASE;最后,大型服务协调器Chubby被用于Bigtable,而Zookeeper则成为协同服务于HBASE。
与传统数据库相比,基于NoSQL如Apache HBase提供了一系列优势:
线性扩展:随着数据量增长,可以通过节点增加进行支撑。
健全备份机制:通过使用如OSS或其他对象存储解决方案,将基础设施分散到不同的物理位置,为用户提供更好的容错能力。
快捷访问速度:利用Zookeeper等协调服务实现更高效地元信息管理,并减少对主键操作带来的延迟。
实战案例
为了展示如何运用Apache HBase进行人工智能场景下的应用,本节将以某半导体显示企业为案例分析格创东智团队如何设计一个快速查找面板特征系统。
业务场景描述
该公司涉及众多面板相关特征,每张面板约为3.2k字节大小,这些面板又被分组,每个特征属于一个组。在现有的业务需求中,有两个主要查询需求:
根据组id查找该组下所有面的特征;
根据组id+面板id查找某一具体面的特征;
原有方案问题
原有的MySQL+OSS方案存在两个关键问题:
面板数量极其不均匀,一些小于10张面的会占据大量空间。
MySQL不支持动态列,因此相同群体内多行记录导致查询复杂且慢速。
使用Apache Hbase改善方案
为了克服这些挑战,我们可以借助以下几个优点:
动态列:允许我们根据需要添加或删除表中的列,不必事先定义每个可能出现的情况。
版本控制:记录所有修改历史,便于追踪变更并恢复至任何时间点。
MOB(Medium-Sized Object)功能:适合小文件,如图片或视频等,小于10MB且非结构化的小型对象,可以提高读写速度和检索能力,同时支持水平扩展。
结合上述功能,我们重新设计了原有方案,将原始三张表替换成了单一的一张表。首先创建名为glass' 的表,并打开MOB功能:
create 'glass', {NAME => 'c', IS_MOB => true, MOB_THRESHOLD => 2048}
这里我们设置了IS_MOB=true启用MOB模式,以及MOB_THRESHOLD=2048表示当文件超过2048字节时视作小文件处理。这意味着即使是较大的二进制数据也能充分利用到这个模式下提出的性能优惠。
然后,在插入新条目时,只需简单地更新行key并添加新的属性值,即可完成增删改查操作,无需担心超出预设限制的问题。此外,由于只有一行包含所有必要信息,可以直接从这一行获取全部信息,无需遍历整个表,从而极大提升查询速度。