基于HBase的工业大数据存储实战物品追踪与管理中的常用现场总线技术应用
随着工业4.0时代的到来,工业互联网和企业的智能化、信息化都将不断推进,传统的工业实时数据库和关系数据库已经难以完全胜任工业大数据的存储,以HBase为代表的NoSQL数据库正在蓬勃发展,其完全分布式特征、高性能、多副本和灵活的动态扩展等特点,使得HBase在工业大数据的存储上拥有强大的优势,打破了流程工业生产中的数据壁垒效应,促进了生产水平和管理水平提高。本期格物汇,就来给大家介绍HBase数据库及格创东智相关实战案例。
了解HBase
HBase是一个高可靠性、高性能、面向列、可伸缩的大规模结构化存储系统。利用HBase技术,可以在廉价PCServer上搭建起大规模结构化存储集群。它是GoogleBigtable开源实现的一种,但同样也有很多不同之处,比如:GoogleBigtable使用GFS作为其文件存储系统,而HBASE利用的是Apache Hadoop HDFS;Google运行MAPREDUCE来处理Bigtable中的海量数据,而HBASE同样利用的是Apache Hadoop MapReduce来处理海量数据;最后,GoogleBigtable使用Chubby作为协同服务,而HBASE则使用Zookeeper作为协同服务。
与传统数据库相比,HBASE具备多重优势:
线性扩展,即随着数据量增多可以通过节点扩展进行支撑;
数据存储在hdfs上,有健全备份机制;
通过zookeeper协调查找数据,有较快访问速度。
HBase实战案例
为了更好地介绍HBase在人工智能场景下的应用,我们以某半导体显示企业为案例,从而分析如何利用基于NO-SQL技术解决实际问题。这家公司业务场景中有很多面板相关特征,每张面板数据大小约为3.2k,这些面板又被分成不同的组,每个面板属于某个组。具体情况如下:
43%左右的组含有1张面板数据;
47%左右的组含有2~9张面板数;
剩余的小部分组里面的数量范围从10到10000张。
现在业务需求主要涉及两类查询:
根据组id查找该组下面的所有面的历史记录。
根据组id+玻璃id查找某一份玻璃特定的历史记录。
原有方案
之前由于业务量不大,所以主要依赖MySQL以及OSS(对象存储)。相关表主要包括“glass”表用于保存玻璃单元及其对应特征,并且每一个“glass”表都包含了一个主键字段“glass_id”。这些行中,其中feature(特征)大小为3.2k,是二进制格式base64后编码后的真实玻璃单元所需信息。在这个设计中,对于每个玻璃单元所需各种属性信息都会独立地保存下来,同时它们之间并没有直接关联,因此对于需要根据一些条件筛选出符合要求的一系列玻璃单元时,由于缺乏有效索引支持,这种方式非常低效且耗时长,因为需要先扫描大量无关条目,然后再从OSS获取所有相关资料。这种查询方式导致链路非常复杂,并且会造成大量延迟时间达到几秒钟甚至更长,这样的情况对于快速响应用户请求是不足够滴,所以我们需要改善这一方案以适应日益增长的人流量和越发严峻的心理压力。
改进方案
针对原有的设计存在的问题,我们采用了一种新的方法——将所有这些操作转移到基于NoSQL技术构建的一个新型平台上,该平台选择的是Apache Cassandra,它提供了一种名为Cassandra Query Language (CQL) 的简单易用的查询语言,也能很好地支持丰富类型的事务操作,如INSERT, UPDATE, DELETE等,同时它还提供了超强大的ACID事务能力,以及高级别缓冲区策略使得读写性能极佳。此外,还有一点值得注意的是,在现有的架构基础上增加更多的手段去优化现有的硬件资源配置,以此提升整体计算能力,让整个系统更加稳定可靠也就是说我们可以通过合理安排服务器资源,将CPU核心数增加至至少8核以上或更高,同时确保内置RAM容量至少16GB或更高这样才能满足日益增长的人流量需求。但是要知道,无论何种措施采取,都不能忽视最基本的人员素质训练,因为这是保证工作质量最根本的手段之一。而对于那些可能出现的问题,不妨考虑一下是否能够找到一种既安全又节省成本同时也能够让工作效率得到提升的情况。如果发现确实在当前配置下无法满足要求,那么就必须重新评估我们的IT基础设施投资计划,为未来的发展做好准备。这一点对于任何组织来说都是不可避免的一环,只要你想成为行业领先者的话。