KaiwuDB 多模数据库-时序性能优化

news2024/10/6 12:21:54

随着物联网领域的快速发展,时序数据的产生和处理需求不断增长。为了满足实时性、高效性和准确性的要求,数据库需要进行时序性能优化,以提供快速的数据写入、实时查询和高效的数据存储与处理能力。

本期直播介绍了时序数据和时序数据库特征以及基于 TSBS 时序测试标准分析,并基于此解析了 KaiwuDB 的时序模型架构和优化设计。

一、时序基础概念

1. 时序基础概念

时间序列数据是指带时间标签的数据,主要由电力、化工、气象、地理信息等行业的各类实时监测、检查与分析设备所采集、产生的数据。

为了便于解释基本概念,以微电网的太阳能发电板作为典型时序数据场景。假设每个发电板采集电流、电压、温度三个量,有多个太阳能板。

  • Measurement:一类设备的集合;

  • Data source:一个具体的设备;

  • Tags:一个设备的描述标签;

  • Timestamp:本条时序数据的采集时间。

2. 时序数据库的特点

时序数据库全称为时间序列数据库。时间序列数据库指主要用于处理带时间标签(按照时间的顺序变化,即时间序列化)的数据。

基本特点:

  • 大数据量的处理;

  • 高压缩比;

  • 冗余重复数据的一份存储;

  • 时间序列分区处理;

  • 一般没有事务相关处理。

二、TSBS 测试标准说明

1. TSBS 测试标准

TimeScale 开源项目:

  • 时序数据的生成和写入;

  • 时序场景的典型查询。

两个典型的应用场景:

  • DevOps – 服务器 CPU 监控场景有序的时间序列数据;

  • IoT – 物联网卡车车队场景存在无序和缺失的时间序列数据。

2. DevOps 场景(CPU-only)

CPU-only 场景特点:

  • 数据间隔均为 10 秒;

  • 场景五数据量最大 1.8 亿条记录,场景四数据量最小 1800 万条记录;

  • 场景四和场景五设备数量较多,仅覆盖 3 分钟时间跨度。

3. 不同分类的 TSBS 语句分析

三、KaiwuDB 多模数据库时序引擎

1. 基本执行架构

  • 应用层;

  • SQL Engine;

  • 分布式层;

  • Storage Engine。

一般没有事务相关处理。

2. 时序优化改造

2.1 存储结构优化

针对时序数据的量大、递增、且部分数据为静态值的特点,存储结构做了如下演进:

  • 大表,所有设备写入到一张表;

  • 分表,一个设备一张表;

  • 分区,按照时间划分数据区域;

  • 合表,部分设备一组,静态属性合并存储,同时时间分区

2.2 KaiwuDB 执行计算架构优化

针对时序模型,KaiwuDB 做了一系列执行架构调整:

  • 执行器下放;

  • 采用 mmap 技术,减少数据拷贝;

  • 分区并行;

  • 数据裁剪;

  • 定制执行计划;

  • Timebucket 等特殊时序算子;

  • 多级动态并行。

2.3 KaiwuDB 时序统计信息

KaiwuDB 的针对时序查询的特征,定制和实现了一套时序预计算统计信息。其特点如下:

  • 时序表是一种特殊的复合表;

  • 模板表对应 tag 表;

  • 实例表只是对应 tag 表中的一条索引,而非完整表;

  • 数据写入时可以动态创建 tag 项并写入数据;

  • tag 表支持基本的统计信息,例如包含 TSBS;

  • 查询支持通用数据读取;

  • 特殊查询能够下推,例如多 tag 查询下推,单个 tag 特定聚合数据;

  • 数据块按照时间分区,增加块的统计信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1260914.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ESP32-Web-Server编程-CSS 基础 2

ESP32-Web-Server编程-CSS 基础 2 概述 如上节所述,可以使用外部 CSS 文件来修饰指定的 HTML 文件。 外部引用 - 使用外部 CSS 文件。 当样式需要被应用到很多页面的时候,外部样式表将是理想的选择。使用外部样式表,就可以通过更改一个文件…

NV040C语音芯片:让自助ATM机使用更加安全快捷

近年来,移动支付方式的兴起、银行加强线上化服务、数字人民币项目推进等因素的影响,人们使用ATM机的频率呈现小幅度的下降趋势。然而,自助ATM机并未从我们的视野中消失,它们仍然在金融领域发挥着重要的作用。未来,ATM机…

分类预测 | Matlab实现NGO-KELM北方苍鹰算法优化核极限学习机分类预测

分类预测 | Matlab实现NGO-KELM北方苍鹰算法优化核极限学习机分类预测 目录 分类预测 | Matlab实现NGO-KELM北方苍鹰算法优化核极限学习机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现NGO-KELM北方苍鹰算法优化核极限学习机分类预测(完…

成都爱尔樊映川院长讲解常见眼底病有哪些

一提到“眼底”这个眼科常用词汇,许多非医疗行业人士认为在眼球下方,其实不然,那眼底在哪呢?眼底其实是眼球内后部的组织,即眼球的内膜——视网膜、视乳头、黄斑和视网膜中央动静脉。 眼底病是一种病种繁多,病因复杂&…

Python Subprocess教程:创建和管理子进程的完整指南

更多Python学习内容:ipengtao.com 在Python中,Subprocess模块为我们提供了强大的工具,使得创建和管理子进程变得十分便捷。本文将深入探讨Subprocess的各种功能和用法,通过丰富的示例代码,带你领略其强大的子进程管理能…

Compensated Summation/Kahan‘s Summation的理解

阅读《Efficient Generation of Error-Inducing Floating-Point Inputs via Symbolic Execution》这篇论文时,文中提到的Commpensated Summation没看太懂,代码如下: 查阅资料发现Compensated Summation也叫Kahan’s Summation,该…

自己动手实现一个深度学习算法——七、卷积神经网络

文章目录 1.整体结构2.卷积层1)全连接层存在的问题2)卷积运算3)填充4)步幅5)3维数据的卷积运算6)结合方块思考7)批处理 3.池化层1)池化层的特征 4.卷积层和池化层的实现1&#xff09…

C Primer Plus讲解前置说明

说明 本来是准备接着写下去,写着就发现思路整理的有点杂乱无章。果然是“想一千次,不如去做一次”。所以这次准备基于《C Primer Plus》第六版给大家分享一下,也是自己梳理的一个过程。有关C语言的书很多,我选这本也恰巧是因为以前…

7种SQL进阶用法【转】

1.自定义排序(ORDER BY FIELD) 在MySQL中ORDER BY排序除了可以用ASC和DESC之外,还可以使使用自定义排序方式来实现 CREATE TABLE movies ( id INT PRIMARY KEY AUTO_INCREMENT, movie_name VARCHAR(255), actors VARCHAR(255), price DECIMAL(10,2) DEFAULT 50, release date…

L4级智能驾驶公交量产方案

1、自动驾驶分级 2、L4级自动驾驶技术方案 3、线控底盘 4、整车传感器方案 5、自动驾驶能力 6、运控平台

在Linux中对Docker中的服务设置自启动

先在Linux中安装docker,然后对docker中的服务设置自启动。 安装docker 第一步,卸载旧版本docker。 若系统中已安装旧版本docker,则需要卸载旧版本docker以及与旧版本docker相关的依赖项。 命令:yum -y remove docker docker-c…

【Docker】python flask 项目如何打包成 Docker images镜像 上传至阿里云ACR私有(共有)镜像仓库 集成Drone CI

一、Python环境编译 1、处理好venv环境 要生成正常的 requirements.txt 文件,我们就需要先将虚拟环境处理好 创建虚拟环境(可选): 在项目目录中,你可以选择使用虚拟环境,这样你的项目依赖将被隔离在一个…

Java 基础学习(二)运算符与分支流程控制

1 运算符 1.1 运算符概述 1.1.1 运算符概述 运算符是一种告诉计算机执行特定的数学或逻辑等操作的符号。Java运算符号包括:数学运算符、关系运算符、逻辑运算符、赋值运算符号、字符串连接运算符。计算机本质上只能处理数字,处理数字的最常见的方式就…

java学习part15单例模式

107-面向对象(高级)-单例设计模式与main()的理解_哔哩哔哩_bilibili 1.单例 就是说在某些开发场景中,某个类只要有一个对象就足够使用了,不需要重复创建。 (理解:比如说是数据库对象,使用时创建一个可以处理所有的数…

虹科干货 | 适用于基于FPGA的网络设备的IEEE 1588透明时钟架构

导读:在基于FPGA的网络设备中,精确的时间同步至关重要。IEEE 1588标准定义的精确时间协议(PTP)为网络中的设备提供了纳秒级的时间同步。本文将介绍虹科提供的适用于基于FPGA的网络设备的IEEE 1588透明时钟(TC&#xff…

电机伺服驱动学习笔记(6)PID算法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、连续PID二、参数整定1.一般调节法 工具提示参考文献 前言 提示:本文是根据野火科技电机系列教学视频PID算法的通俗解说和参数整定视频课章节整…

C#文件夹基本操作(判断文件夹是否存在、创建文件夹、移动文件夹、删除文件夹以及遍历文件夹中的文件)

目录 一、判断文件夹是否存在 1.Directory类的Exists()方法 2. DirectoryInfo类的Exists属性 二、创建文件夹 1. Directory类的CreateDirectory()方法 2.DirectoryInfo类的Create()方法 三、移动文件夹 1. Directory类的Move()方法 2.DirectoryInfo类的MoveT…

Unity Meta Quest 一体机开发(八):实现 Hand Grab 扔物体功能

文章目录 📕教程说明📕设置刚体和碰撞体📕给物体添加 Physics Grabbable 脚本📕给手部添加 Hand Velocity Calculator 物体 此教程相关的详细教案,文档,思维导图和工程文件会放入 Seed XR 社区。这是一个高…

预览功能实现

<!-- 预览 --><el-dialog title"预览" :visible.sync"dialogPreviewVisible" width"50%" append-to-body :close-on-click-modal"false" close"PreviewClose"><div style"margin-bottom:5%">&l…

红黑树(万字图文详解)

红黑树 1. 红黑树的概念2. 红黑树的性质3. 红黑树节点的定义4. 红黑树结构5. 红黑树的插入操作5.1 按照二叉搜索的树规则插入新节点5.2 检测新节点插入后&#xff0c;红黑树的性质是否造到破坏5.2.1 情况一: cur为红&#xff0c;p为红&#xff0c;g为黑&#xff0c;u存在且为红…