基于HBase的工业大数据存储实战探究现场总线控制系统在物品管理中的优缺点

基于HBase的工业大数据存储实战探究现场总线控制系统在物品管理中的优缺点

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

了解HBase

HBase是一个高可靠性、高性能、面向列、可伸缩的大型分布式存储系统。它利用Hadoop HDFS作为其文件存储系统,并且通过MapReduce进行海量数据处理。与传统关系型数据库不同,HBASE提供了类似于Google Bigtable风格的一致性模型,它支持非常大的表,同时也能够提供快速查询能力。

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

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

数据备份健全:使用DistributedFileSystem(如Apache HDFS)进行持久化存储。

高性能访问:通过ZooKeeper协调服务快速定位并访问所需区域。

HBase实战案例

为了更好地介绍HBase在人工智能场景下的应用,我们以某半导体显示企业为案例,分析如何利用HBase设计出一个快速查找面板特征系统。

业务场景

该公司有大量面板相关特征数据,每张面板数据大小约为3.2k字节,这些面板被分组,每个面板属于某个组。根据实际情况,这些组中包含了很多不同的情况:

大约43% 的组只有1张面的数据;

大约47% 的组含有2~9张面的数据;

其余的小部分组则可能包含10~10000张面的数量较多的情况。

业务需求主要包括两个方面:

根据群体ID查找该群体下所有面的数据;

根据群体ID+面ID查找具体某一张脸上的特定数据。

原有方案:MySQL + OSS

之前由于业务规模较小,所以主要依赖MySQL以及OSS(对象存储)来处理这些资料。主要是基于两种类型表格:

group 表:用于记录每个群体ID及其对应信息。

glass 表(玻璃):用于记录每个玻璃片以及它们对应于哪一个群体ID,以及它们拥有的那些特定的信息或“feature”。

其中,“feature”字段即为我们所需要查询寻找的大量二进制文件,而这正是真实存在于我们的后端服务器上的产品规格描述。这意味着我们必须使用base64编码后的字符串才能成功地将其保存下来,然后再从这个字符串中解析回原始格式,即使是在很小或者不连续的地方也是如此。在这种方式下,由于每个“glass”片子通常只会被分配给一个单独的小组,那么对于同一“group”的所有成员而言,他们都会分别占用至少一种行位置。而如果想要根据“group ID”找到整个小组内所有成员所涉及到的全部玻璃片,则必须先从 MySQL 中检索出大量行,然后再去OSS 中根据 “glass ID” 进行检索操作。这导致整个链路变得非常长,从而导致查询时间达到十秒之久,这远远不足以满足目前业务增长速度要求,因此现有的解决方案无法继续满足当前或未来增长趋势需求。

使用 HBASE 解决方案

为了解决这一问题,我们采用了一种新的方法,将原本属于同一条消息内容但因为长度限制不能直接放入单行中的内容改由 HBASE 来管理。此外,由于是基于 “group ID” 和 “glass ID” 来确定唯一标识符,所以我们可以使用 HBASE 的 Column Family(列族)功能来实现更加有效率地读取写入过程。在这个新设计中,我们选择使用 MOB 特性,因为它允许我们在一定程度上减少资源浪费同时保持良好的读写性能。但由于一些原因,比如程序逻辑简单或其他考虑因素,我们决定还是尽可能保持现有的代码逻辑结构,不要改变太多细节,只是简单调整一下底层库实现技术栈,而不是重新构建整个软件架构框架。不过,在实际应用中,如果你发现这种方法并不适合你的项目,你应该仔细考虑是否需要修改你的项目结构,以便更好地利用 NoSQL 数据库提供的一系列优点,如非事务性的行为模式,以及更好的伸缩性等。此外,如果你遇到任何关于如何正确配置环境变量的问题,或是关于如何设置连接参数的问题,请确保你遵循最佳做法,并且咨询经验丰富的人士,因为他们能帮助你避免许多常见错误,并最终提高应用程序整体运行效率。如果以上提到的任何步骤看起来过于复杂,那么请记住,无论何时何刻,都应该准备好学习更多知识,以便让自己成为未来的专家级开发者!