《冶金自动化》中2018年第S2期的一篇文章——《一种分布式时序数据库的存储架构设计及实现方法》,作者为鲍远松、董文生,所属机构为上海宝信软件股份有限公司研究开发部(上海)。文章探讨了分布式时序数据库的存储架构设计及实现方法,目标是通过分布式系统解决工业时序大数据存储中的诸多问题。以下是基于该文章的学术总结。
随着工业4.0的持续推进,工业设备的智能化与企业的信息化改造带来了时序数据的爆发性增长。然而,传统时序数据库未能满足大数据时代的需求,主要在以下几个方面存在不足:
基于以上问题,作者提出设计一个以分布式技术为基础,满足高性能、高可靠性、高扩展性和灵活性的大规模时序数据库的解决方案。
该研究旨在构建一个开放的分布式时序数据库存储架构,结合分布式流式计算和存储技术,实现以下目标: - 支持高频时序数据的存储; - 动态扩展和高可靠性; - 灵活的查询与检索能力; - 提供对数据的计算、分析能力,挖掘数据价值。
该系统由以下五大核心模块组成: 1. 分布式数据网关(Distributed Data Gateway): 由负载均衡服务(LB)和数据网关节点(GW)组成。网关用于数据接收与查询代理,采用无状态设计模式,确保单个节点故障不影响系统的运行。
分布式消息队列(Distributed Message Queue): 基于Kafka实现,用于在多个Broker节点之间完成数据的发布和订阅。该机制需满足高吞吐量、高可靠性及持久化要求,以实现可靠的数据传输。
分布式流式计算服务(Distributed Stream Processing Service): 基于实时流式计算框架Storm,提供三项服务:
分布式缓存服务(Distributed Cache Service): 基于Redis(NoSQL数据库)设计,缓存最新的实时数据值,为系统提供高效的实时数据检索。
分布式存储服务(Distributed Storage Service): 基于HBase和Solr(分布式搜索引擎),实现海量数据的持久化存储与快速查询,支持大容量、高可靠性,以及数据副本的安全性与动态扩展需求。
Redis使用hset键值对存储时序数据,包括点名(tag)、值(value)、时间戳(timestamp)及数据质量(quality)。这种方式可以快速实现实时查询。
HBase采用无模式稀疏设计,将不同的点名数据放置在一行,通过时间作为主键,方便进行时间范围内的历史数据检索,同时支持后续的基于时间序列的分析。
初始化阶段,网关创建两个Kafka topic:一个用于数据存储,一个用于数据变化通知。
数据采集客户端通过SDK向分布式网关上传数据;负载均衡服务器将数据路由到性能负载最低的网关节点,并转发至Kafka。
Kafka中的数据被流式计算服务订阅后,进入数据处理流程:
通过上述处理,系统实现对数据的可靠存储和扩展处理能力,数据量增加时,仅需增加节点即可实现弹性扩展。
数据查询根据类型不同设定具体路径: - 若为实时快照查询,直接通过Redis缓存返回数据; - 若为历史数据的时间查询,通过HBase行键完成; - 若为模糊查询或者按值范围的查询请求,则转交Solr处理并返回结果。
采用无单点故障的分布式架构,所有核心组件均支持横向扩展。
Kafka的数据序列化与副本机制、Storm的容错机制,以及HBase的存储副本机制共同保障数据在传输、处理、存储各阶段的安全性。
实时流计算通过Storm实现,批量数据分析则借助HBase+HDFS的存储方式,与Spark等框架整合完成离线计算。
结合HBase的行键方式和Solr的搜索引擎,满足复杂条件(如正则表达式)的查询需求。
作者在普通四台x86服务器(配置:Intel Xeon E5-2660 v3,128GB内存,SATA 7200rpm硬盘x10)上测试,能够实现每秒处理400万条时序数据的存储。整个系统运行稳定,支持独立部署及与用户现有Hadoop平台的集成,有效降低了系统运维复杂性及成本。
该设计方案显著提升了时序数据库在工业大数据领域的应用能力,特别是在可靠性、扩展性、数据查询以及实时/离线数据处理方面的表现。这些特性为企业的信息化与智能化转型奠定了基础,其价值主要体现在: - 应用价值: 能够满足工业大数据场景下的海量时序数据存储需求; - 科学技术价值: 提供了一种高效且易扩展的架构设计,为分布式数据库领域探索了新的解决方案; - 经济价值: 降低系统部署与运维成本,提高企业的大数据处理能力。
通过这项研究工作,作者对工业时序大数据的存储与处理提供了系统性的解决方案,为相关领域的研究和实践提供了重要的技术参考。