基于HBase的工业大数据存储实战现场总线系统在物品追踪中的应用
随着工业4.0时代的到来,工业互联网和企业的智能化、信息化都将不断推进,传统的工业实时数据库和关系数据库已经难以完全胜任工业大数据的存储,以HBase为代表的NoSQL数据库正在蓬勃发展,其完全分布式特征、高性能、多副本和灵活的动态扩展等特点,使得HBase在工业大数据的存储上拥有强大的优势,打破了流程工业生产中的数据壁垒效应,促进了生产水平和管理水平的大幅提升。本期格物汇,就来给大家介绍HBase数据库及格创东智相关实战案例。
了解HBase
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。它利用Hadoop HDFS作为其文件存储系统,将海量数据处理能力通过MapReduce框架实现。与传统数据库相比,HBASE具备多重优势:线性扩展,可以根据需求增加节点;数据存储在hdfs上,有健全备份机制;通过zookeeper协调服务,可以快速访问。
HBase实战案例
为了更好地理解如何利用HBase进行场景下的应用,我们可以使用某半导体显示企业为例。在该公司业务中,有大量面板相关特征数据,每张面板约3.2k字节,这些面板又被分组,每个面板属于某个组。具体情况如下:
43%左右的情况下,一组只包含一张面板。
47%左右的情况下,一组包含2~9张面板。
剩余情况中,一组含有10~10000张以上面的每一个小于或等于10MB的小文件。
现在业务需求主要包括两类查询:
根据群ID查找该群下的所有玻璃(即所有面的);
根据群ID+玻璃ID查找某一块玻璃(即一个特定的面的)的具体数据。
原有的解决方案是基于MySQL和OSS,但这种设计存在两个问题:首先,由于MySQL不支持动态列,因此需要拆分成多行表记录同一条完整信息;其次,即使如此,也会导致查询时需要访问两个不同的存储系统,从而影响效率。此外,由于各个群内玻璃数量差异巨大,这种设计进一步加剧了这个问题,使得单次查询时间可能达到十秒钟之久,对现有快速增长业务造成挑战。
为了解决这些问题,我们引入了基于NoSQL技术尤其是非结构化列族键值对模式(K-V)的分布式关系型DBMS —— Hbase,它提供了一套特别适合对海量非结构化或半结构化用户日志进行快速检索分析工具。我们可以采用以下步骤来优化现有的解决方案:
选择合适表名:将"glass"作为表名,因为这正是我们要操作的一种类型,而不是“face”或者其他名字。
CREATE 'table' IF NOT EXISTS glass (
group_id: string,
glass_id: string,
feature: binary
)
WITH (NAME = 'c', IS_MOB = TRUE, MOB_THRESHOLD = 2048)
定义MOB功能:
IS_MOB属性启用MOB功能,
MOB_THRESHOLD设置为2048字节,即当文件大小超过2048字节时,当作小对象处理并使用MOB功能来提高读写速度
插入方法:
使用Put对象添加新的行,并且直接使用GlassId作为列名
获取方法:
使用Get对象根据GroupID获取整个rowkey上的所有columns
删除方法:
删除指定group_id下的所有glass
更新/批量操作:
使用Scanner遍历rows,然后对于每个row执行put
压缩策略:
可以设置Snappy或Gzip压缩算法以减少磁盘占用空间,并提高I/O性能
总结来说,在实际应用中,无论是在物品追踪还是现场总线系统这样的复杂场景中,都需要考虑到高效率、大规模处理能力以及灵活性的要求。在这种背景下,Hbase就显得非常重要,它能够帮助我们构建出既符合行业标准又能满足高速增长需求的大规模无模式事务处理平台。这就是为什么很多企业选择采用NoSQL技术如Apache Hbase来建立他们自己的自定义解决方案,比如格创东智团队所做出的改进,为客户提供更快捷、更准确的地理位置信息服务。