一、序列概括:
随着物联网技术在各行业的使用将越来越广,物联网与人工智能的深度结合,特别是在智能家居、智慧城市、工业4.0等领域有着广泛的应用,AIoT(Artificial Intelligence of Things)正成为企业实现智能化转型的关键路径。
上面二篇长文已经介绍了KWDB的安装以及踩过的坑,而且也对TSBS专门针对时间序列场景做了压力测试,同时,也使用了GoLang时序IoT数据 + 香橙派Orange Pi AI Pro 开发板场景案例测试的最佳实践。
接下来,将从第3个方向“产品解读”一起来探索KWDB产品架构与原理上带着大家一起来解锁数据管理新境界。
一、正文前言:
近年来,随着物联网、人工智能和设备的普及,以及物联网(IoT)规模持续不断的增长,IoT 领域的数据管理需求变得越来越复杂,时间序列数据在各个领域的应用越来越广泛,时序数据库的重要性也日益凸显。迫切的需要一款高性能、可扩展、强安全、低成本的数据管理系统为底座,向上承托大数据分析、数据资产化、资产服务化等增值应用,以数据驱动生产管理效率提升,赋能行业数智化发展。
传统数据库在面对海量数据处理时逐渐显现瓶,伴随着时序数据库的用例不断增加,已成为企业中增长最快的数据库类型之一。那么,怎么样拥有一款时序数据库,可以为更多领域提供更高效、更可靠的数据处理和分析能力呢?
今天给大家推荐一款作为国产数据库的新锐代表,KWDB是一款分布式、多模、支持云边端协同的数据库产品,以 AIoT 为一大核心场景,提供高性能、高可用、高兼容、高扩展的数据管理服务及能力,旨在以现代数据库架构,与前沿智能化技术的融合创新赋能工业物联网、数字能源、车联网、智慧产业等新兴数字领域,助力传统产业从容步入 IoT 时代。
-
①. “就地计算”技术赋能时序数据处理性能大幅提升,轻松应对 PB 级、甚至 ZB 级时序数据高速写入、复杂查询。
-
②. 主打“面向行业的多模”,将多个不同类型数据库的功能充分融合,实现“一库多用”,大幅简化传统复杂化的运维管理流程。
二、时序数据库是什么?
时序数据库是用于处理带有时间戳数据的数据库。与其他数据库相比,时序数据库在处理大规模时间序列数据时有支持高压缩率、高读写速度、高可视化分析能力等优势,是近年来发展最快的数据库产品之一。
为什么会衍生时序数据库这一种新趋势呢?一般常规项目使用的是PostgreSQL或MySQL这种关系型数据库对于短期需求不大的情况下下还是可以满足的,但是一旦数据量增长,其性能不足以支持频繁的添加和读取需求。运用时间模型来构造的应用非常需要时序数据库的加持,包括未来大数据的趋势,时序数据库必然会成为一个新潮流。
时序数据库(Time Series Database, TSDB)和关系数据库(Relational Database, RDBMS)是两种针对不同数据需求设计的数据库类型,它们在数据模型、存储方式、查询优化和应用场景等方面有显著区别。
-
①. 时序数据库:专门存储带时间戳的序列化数据,要求表结构包含主时间戳字段和标签字段,更适合处理时间序列数据,具有高写入吞吐量、高效的时间范围查询和低存储成本的特点。
-
②. 关系型数据库:支持传统关系模型,可定义主键、外键、索引等约束,适用于非时间序列数据,更适合处理复杂的事务和查询,支持强一致性和复杂的数据关系。
时序数据库则面向工业物联网场景,数据由传感器设备产生,其接入终端规模可能达到数万至百万量级,数据采集频率可达秒级、毫秒级。因此,时序数据库需稳定维持每秒数十万至千万级的数据写入吞吐,针对高通量、高并发的写入需求进行性能优化。
三、“鱼与熊掌兼得” - 一站式式分布式多模数据库产品(KWDB):
上面我们了解了KWDB不仅仅是“时序数据库”, KWDB 透过内核内置一套通用的数据模型,将时序与关系数据模型融于一体。KWDB提供统一的数据接入,支持不同数据模型的融合处理,实现数据库系统数据模型对应用程序的透明。这既可以满足各种场景下用户对单一数据模型的管理需求,也能够满足用户大型复杂系统对多模数据的管理需求。
3.1 KWDB产品优势:
KWDB具备完善的功能和优异的性能,充分满足不同的应用场景需求,赋能行业企业的数字化建设和转型。
相比传统的数据库,KWDB 提供多模数据管理能力,支持不同数据模型的统一存储,助力企业跨部门、跨业务统一管理数据,实现多业务数据融合,支撑多样化的应用服务,KWDB 的产品架构如下图所示:
- ①. 数据存储:采用行列混存架构,支持固态硬盘、机械硬盘等各类存储设备。
- ②. 数据副本:采用 Shared Nothing 架构,基于 Raft 协议的高可用、多副本架构,支持数据均衡及容错,保障数据服务不中断。
- ③. 执行计算:融合多种数据计算引擎,根据不同模型数据特征选择不同的存储、计算模式,对外提供统一的接口,提供多种分析计算能力,提升查询效率。
- ④. 系统管理:提供系统连接、身份认证、权限管理、资源管理等多种系统管理方式。
- ⑤. 生态工具与兼容:提供数据库操作、监控管理等可视化工具,兼容 EMQX、Kafka、Telegraf 等第三方工具。
3.2 KWDB应用场景:
工业物联网IoT场景下,数据是最重要的资源之一,企业需要对各种机器、设备和传感器产生的时序数据进行采集、存储与分析。上述场景对数据库提出包括高可靠性、实时性、大规模、高并发、高精度、易扩展等在内的各种要求。同时,这些数据也带来了新的挑战,如数据安全、数据质量、数据管理等,KWDB可以覆盖众多行业应用场景,助力用户从数据中挖掘更大的商业价值。
四、KWDB多模融合,一库多用原理分析:
KWDB 透过内核内置一套通用的数据模型,将时序与关系数据模型融于一体。KWDB 提供统一的数据接入,支持不同数据模型的融合处理,实现数据库系统数据模型对应用程序的透明。这既可以满足各种场景下用户对单一数据模型的管理需求,也能够满足用户大型复杂系统对多模数据的管理需求。
企业内部净水机数字化体系建设思考:
以净水机物联网IoT场景为例,因为设备产生的数据通常都会带有时间戳,如净水器的编号、设备状态、TDS值、设备交易数据等,数据管理通常以时序数据为核心。但是,物联网系统不仅限于时序数据,还包括净水机的类型、销售渠道归属、用户信息、日志记录等非时序数据。因此,在企业内部物联网业务场景下,存在着非多模方案。
以下为企业内部数字化体系建设的数据流向,用于从不同的数据源中提取数据,对其进行清洗和转换,最后加载到目标数据库或数据仓库中。应用于数据仓库、数据湖、数据分析等领域,为分析、报表、机器学习等应用提供一致、清洗后的数据。
-
①. 在机器出厂工程师在用户现场安装前,会对机器进行一些出厂的初始化设置,比如:由销售人员在ERP系统建立机器合同(租赁或销售),合同包含合同的租赁期限、续费状态、机器的类型、数量,再由仓库人员录入机器编码绑定设备到ERP系统内,如果是租赁设备还需要专门进行净水机读卡、充值、绑定等操作。这些信息是存储在关系型数据库MySQL中。
-
②. 净水机在使用过程中,产生的时序数据会通过自带的开发板,将数据收集并且发送到MongoDB文档数据库上,在一定的期限范围内,会进行冷热数据备份,将一部分旧的数据同步保存到MySQL服务器上。
-
③. 针对于数据报表系统,则会将数据统一清洗到PostgreSQL数据中,为了应付查询速度与效率,可能会额外增加其它的中间件,比如:Elasticsearch、ClickHouse、Redis等技术手段。
-
①. 我们可以看到在MySQL 等的关系数据库中,时序数据存储在 MongoDB等时序数据库中,在进行关联查询时在数据中台将两部分数据汇总后进行关联查询,这种跨库的数据关联会产生极大的查询性能延迟。
-
②. 而在时序数据库保存部分关系数据,使得关系数据和时序数据保存在一起,再采用优化手段,降低关系数据带来的冗余存储,这样虽然能提高部分关联查询的速度,但是由于关系数据和时序数据存储的特性,其无法支撑复杂的跨模关联的查询,也无法适应原有关系数据和新增时序数据的结合。
此时,KWDB 的多模方案是将关系数据和时序数据统一管理,采用自适应数据存储和查询的方案,这样既保留了关系数据库强大的结构化处理能力,又具备了时序数据库的海量吞吐优势。
五、KWDB源码分析:
应用层
│
├─ 关系型接口(kwbase)
│
└─ 时序接口(kwdbts2)
│
├─ 执行引擎(exec)
├─ 存储引擎(storage)
├─ 内存管理(mmap)
└─ 统计模块(statistic)
│
└─ 基础服务(common)
├─ 日志系统(log)
├─ 线程管理(thread)
├─ 错误处理(error)
└─ 跟踪系统(trace)
六、企业数据化系统建设阶段后续:
随着技术的飞速发展,企业对数据的需求不断增长,数据已然成为企业的宝贵资产之一,但我们不仅要收集和存储数据,更要挖掘和利用数据。数据仓库已经成为了企业信息化建设的重要组成部分。将企业内部各个部门的数据整合在一起,形成一个统一的数据视图。这样,企业决策者可以更加方便地获取所需的信息,从而提高决策效率。
KWDB 提供可插拔的 AI 分析预测引擎,提供从模型导入、模型训练、模型预测、模型评估到模型更新的全生命周期管理能力,通过简单调用 SQL 函数即可进行机器学习相关操作,使得任何具备数据库应用开发背景的应用开发人员都可以使用数十行代码完成模型的导入、训练、预测、评估和更新操作,并完成对数据的深度挖掘以提升数据价值, 可以促进数据飞轮实现跨业务条线、跨系统的数据整合,为管理分析和业务决策提供统一的数据支持。