KWDB技术架构解析:多模融合、时序引擎与分布式设计的创新实践

作者:SerenZhang

原文链接:https://blog.itpub.net/70045850/viewspace-3084747/

前言

KWDB是专为AIoT(物联网人工智能)场景设计,支持统一存储与高效处理时序数据,关系数据以及非结构化数据的分布式

多模数据库,它凭借其多模架构、高效时序数据处理、分布式等亮点技术在众多数据库中脱颖而出,那我就从这三方面,跟

你们聊聊我眼中的KWDB。

一、 多模融合架构

首先呢,什么是多模融合架构?官方一点来说呢,多模融合架构就是通过混合存储引擎、跨模关联机制与统一元数据层,实现

时序数据、关系数据及非结构化数据的统一存储和高效处理。简单来说,就是将诸多设备产生的时间序列数据(例如机器的实时

数据),关系型数据(例如数据表格),非结构化数据(像照片,视频记录等)统一结合到一个大的平台上,让不同的数据能够合理

存储在一起,让它们相互参考,“联动”起来。比如在一场交通事故中,通过同时分析该车辆的实时速度,位置信息,行驶记

录视频等,能够快速判断出这种复杂场景的具体情况。

那么,多模融合架构是如何实现的呢?它主要通过Outside-In(从外向内)和Inside-Out(从内向外)两种方式实现。

Outside-In方式是先处理关系数据,然后再处理时序数据,处理逻辑如下:

在Outside-In方式中,为了优化查询过程,使用了特殊的BatchLookupJoin操作来连接关系数据与时序

数据:

Inside-Out方式首先处理时序数据,然后再处理关系数据。这通常需要对时序数据库进行预聚合处理:

在数据源被建立时,KWDB能通过识别不同的表类型选择适当的处理方法,即多模表处理:

KWDB的多模融合架构依靠Outside-In和Inside-Out两种优化方式,根据不同查询选择高效的数据处理路径,并通过特殊操作(如BatchLookupJoin)连接不同数据,从而高效处理AIoT场景下的大量复杂数据查询。

二、高效时序数据处理

KWDB 通过很多技术和优化来完成高效的时间序列数据处理,以下是一些方法的概述:

由以上注释可以知道,KWDB 对时间序列数据使用列式存储格式,这能大大提高分析,存储,查询的性能。

同时,将数据按时间分区,这不但能使查询工作更高效,还更有利于管理:

KWDB还包含热/冷数据分层系统,它能将不常访问的冷数据迁移到另一个存储层:

这是KWDB在实现不断寻找并删除重复数据:

并通过将数据批量插入来优化性能:

为了使数据有持久性,KWDB实现了设有不同级别的预写日志记录系统,通过switch-case结构控制不同模式下的表创建类型:

KWDB的高效时序数据处理系统可以处理高吞吐量的写入操作,并通过列式存储、基于时间的分区以及多种优化技术来保持快速查询性能。

三,分布式架构

KWDB 实现了专为 AIoT场景设计的分布式多模型数据库架构。该架构支持高性能时间序列数据和关系数据处理。

KWDB 的分布式架构围绕几个关键组件构建:

1.节点系统:KWDB 集群中的每个实例都由一个 Node 对象表示,该对象管理该实例的生命周期和作 :

2.Gossip协议:KWDB采用基于Gossip协议的方式实现集群成员资格管理、元数据传播和节点发现,让节点无需集中协调即可维护集群状态的一致视图。

3.服务器组件:主服务器组件编排节点的所有方面,包括通信、存储和查询处理:

4.分布式发送方:处理跨集群到适当节点的路由请求 :

5.RPC系统:通过基于 gRPC 的协议 促进节点间通信。

上述组件在 KWDB 架构中深度互连。Node 系统管理本地数据,Gossip 协议共享集群状态,分布式发送方路由请求,RPC 系统提供通信。

总结

KWDB以多模融合架构为基座,高效时序处理为核心,分布式弹性设计为扩展,构建了面向物联网时代的全场景数据管理平台。其技术亮点不仅体现在性能指标,更在于架构的系统性与前瞻性。相信再未来随着生态架构完善,KWDB能够引领国产数据库在工业智能化与数字化转型中的深度应用。

本文所有代码引用皆来源于: https://github.com/KWDB/KWDB

主要代码来源地址:

https://github.com/KWDB/KWDB/blob/f6327b5e/kwbase/pkg/sql/opt/exec/execbuilder/relational.go

https://github.com/KWDB/KWDB/blob/f6327b5e/kwbase/pkg/sql/opt/optbuilder/select.go

https://github.com/KWDB/KWDB/blob/f6327b5e/kwdbts2/storage/src/ts_table.cpp

https://github.com/KWDB/KWDB/blob/f6327b5e/kwdbts2/storage/include/ts_table.h

https://github.com/KWDB/KWDB/blob/f6327b5e/kwdbts2/engine/engine.cpp

https://github.com/KWDB/KWDB/blob/f6327b5e/kwbase/pkg/server/node.go

https://github.com/KWDB/KWDB/blob/f6327b5e/kwbase/pkg/gossip/gossip.go

https://github.com/KWDB/KWDB/blob/f6327b5e/kwbase/pkg/server/server.go

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值