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

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

本期直播介绍了时序数据和时序数据库特征以及基于 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 特定聚合数据;

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第二十章总结

线程简介 在 Java 中,并发机制非常重要。在以往的程序设计中,我们都是一个任务完成后再进行下一个任务,这样下一个任务的开始必须等待前一个任务的结束。Java 语言提供了并发机制,程序员可以在程序中执行多个线程,每一…

助力企业实现更简单的数据库管理,ATOMDB 与 TDengine 完成兼容性互认

为加速数字化转型进程,当下越来越多的企业开始进行新一轮数据架构改造升级。在此过程中,全平台数据库管理客户端提供了一个集中管理和操作数据库的工具,提高了数据库管理的效率和便利性,减少了人工操作的复杂性和错误率&#xff0…

jquery 地址四级联级显示 不默认选择

代码效果 <body class"bgca"><img src"./files/joinTooBg.png" style"width: 100%;object-fit: cover;" alt""><!--填写申请资料--><section><div class"zi-liao"><h3 class"zong-h…

AMP State Evolution的计算:以伯努利先验为例

AMP State Evolution (SE)的计算 t 1 t1 t1时&#xff0c; E ( t ) E [ X 2 ] \mathcal E^{(t)} \mathbb E [X^2] E(t)E[X2]&#xff0c;SE的迭代式为 τ r ( t ) σ 2 1 δ E ( t ) E ( t 1 ) E ∣ η ( t ) ( X Z ) − X ∣ 2 , Z ∼ N ( 0 , τ r ( t ) ) \begin{a…

java设计模式学习之【抽象工厂模式】

文章目录 引言抽象工厂模式简介定义与用途实现方式&#xff1a; 使用场景优势与劣势抽象工厂模式在spring中的应用银行和贷款服务示例代码地址 引言 在我们之前的讨论中&#xff0c;我们探索了工厂方法模式——一种简化单一产品创建的设计模式。现在&#xff0c;我们将视角转向…

探索容灾架构演进之路,从单点到异地多活

1. 挑战与变革 在公司发展初期&#xff0c;业务发展和用户增长是首要关注的焦点。然而&#xff0c;随着业务规模不断扩大&#xff0c;用户数量逐渐攀升&#xff0c;应用稳定性的重要性也变得愈发凸显。在这个演进过程中&#xff0c;传统架构下的应用部署模式开始显露出多方面的…

多类场景、遍布各地,融云 IM 支撑多款应用全球增长

&#xff08;全网都在找的《社交泛娱乐出海作战地图》&#xff0c;点击获取&#x1f446;&#xff09; 无论是面向企业场景的工作流协同还是消费场景的网络效应形成&#xff0c;商务社交还是陌生人社交&#xff0c;IM 都是必备组件。IM 遍布互联网各角落&#xff0c;出现在所有…

用于图像分类任务的经典神经网络综述

&#x1f380;个人主页&#xff1a; https://zhangxiaoshu.blog.csdn.net &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️&#xff0c;如有错误敬请指正! &#x1f495;未来很长&#xff0c;值得我们全力奔赴更美好的生活&…

C++标准模板库 STL 简介(standard template library)

在 C 语言中&#xff0c;很多东西都是由我们自己去实现的&#xff0c;例如自定义数组&#xff0c;线程文件操作&#xff0c;排序算法等等&#xff0c;有些复杂的东西实现不好很容易留下不易发现的 bug。而 C为使用者提供了一套标准模板库 STL,其中封装了很多实用的容器&#xf…

基于单片机设计的超声波测距仪(采用HC-SR04模块)

一、前言 本项目是基于单片机设计的超声波测距仪&#xff0c;主要采用了STC89C52单片机和HC-SR04超声波测距模块。通过LCD1602液晶显示屏来展示测量的距离信息。 超声波测距技术是一种常见的非接触式测距方法&#xff0c;利用超声波的传播速度测量物体与测距器之间的距离。它…

GDOUCTF2023-Reverse WP

文章目录 [GDOUCTF 2023]Check_Your_Luck[GDOUCTF 2023]Tea[GDOUCTF 2023]easy_pyc[GDOUCTF 2023]doublegame[GDOUCTF 2023]L&#xff01;s&#xff01;[GDOUCTF 2023]润&#xff01;附 [GDOUCTF 2023]Check_Your_Luck 根据 if 使用z3约束求解器。 EXP&#xff1a; from z3 i…

【C++】探索C++模板编程

文章目录 什么是C模板&#xff1f;模板的基本语法类型模板参数模板函数的示例类模板的示例总结 C模板是一种强大的编程工具&#xff0c;它可以实现泛型编程&#xff0c;使代码更加灵活和可重用。本篇博客将介绍C模板的基本语法、类型模板参数和模板函数的使用&#xff0c;并通过…

第20章:多线程

20.1 线程简介 在Java中&#xff0c;并发机制非常重要&#xff0c;程序员可以在程序中执行多个线程&#xff0c;每个线程完成一个功能&#xff0c;并与其他线程并发执行&#xff0c;这种机制被称为多线程。但是&#xff0c;并不是所有编程语言都支持多线程。 线程的特点&#…

集群 CPU 利用率均值达 45% ,揭秘小红书规模化混部技术实践

根据 Gartner 预测数据显示&#xff1a;2024 年全球 IT 支出预计将达到 5.1 万亿美元&#xff0c;比 2023 年增长 8 %。然而&#xff0c;该机构的另一项调查数据显示&#xff1a;全球数据中心服务器平均 CPU 利用率普遍低于 20%&#xff0c;存在巨大的资源浪费。据测算&#xf…

Python内置函数与标准库函数的解释示例

一、内置函数与标准库函数的区分 Python 解释器自带的函数叫做内置函数&#xff0c;这些函数可以直接使用&#xff0c;不需要导入某个模块。 Python 解释器也是一个程序&#xff0c;它给用户提供了一些常用功能&#xff0c;并给它们起了独一无二的名字&#xff0c;这些常用功能…

C语言——标识符

一、标识符是什么 标识符是C程序的最基本组成部分&#xff0c;例如&#xff1a;变量名称、函数名称、数据类型等等&#xff0c;都是一个标识符。标识符的要求是&#xff1a;必须由字母&#xff08;区分大小写&#xff09;、数字、下划线组成。而且&#xff0c;标识符的第一个字…

Django回顾【一】

一、Web应用程序 Web应用程序是一种可以通过Web访问的应用程序&#xff0c;程序的最大好处是用户很容易访问应用程序&#xff0c;用户只需要有浏览器即可&#xff0c;不需要再安装其他软件。应用程序有两种模式C/S、B/S。 C/S&#xff1a;客户端<----->服务端 例如My…

共筑关基安全防线,开源网安加入中关村华安关键信息基础设施安全保护联盟

近日&#xff0c;开源网安正式加入“中关村华安关键信息基础设施安全保护联盟”&#xff08;以下简称&#xff1a;关保联盟&#xff09;成为会员单位&#xff0c;进一步加强与行业内重要机构、企业的协同合作&#xff0c;推动关键信息基础设施安全保护领域的生态建设。 未来&am…

9.Spring 整合 Redis

引入依赖&#xff1a;spring-boot-starter-data-redis配置 Redis&#xff1a;配置数据库参数、编写配置类&#xff0c;构造 RedisTemplate访问 Redis&#xff1a; redisTemplate.opsForValue() redisTemplate.opsForHash() redisTemplate.opsForList() redisTemplate.opsForSe…

Codebeamer—软件全生命周期管理轻量级平台

产品概述 Codebeamer涵盖了软件研发的生命周期&#xff0c;在一个整合的平台内支持需求管理、测试管理、软件开发过程管理以及项目管理等&#xff0c;同时具有IToperations&DevOps相关的内容&#xff0c;并支持变体管理的功能。对于使用集成的应用程序生命周期管理&#xf…