时序数据库如何选型?详细指标总结!
工业物联网场景,如何判断什么才是好的时序数据库?
工业物联网将机器设备、控制系统与信息系统、业务过程连接起来,利用海量数据进行分析决策,是智能制造的基础设施,并影响整个工业价值链。工业物联网机器设备感知形成了海量时间序列数据(带时间标签的数据,每条时间序列是按时间戳顺序存贮的一组数据点),蕴含丰富的工业语义,是工业大数据的规模与价值主体。
为应对海量工业物联网数据管理,更好地实现工业数字化、智能化发展,专门管理时序数据的时序数据库产品应运而生。那么如果需要使用时序数据库,该如何衡量时序数据库的性能表现?好用的时序数据库,又该满足哪些条件?本文将梳理时序数据库的性能选型标准,供大家参考。
01 时序数据管理难点
时序数据库的选型标准,跟时序数据本身处理的难点是息息相关的。
(1)软件技术挑战
工业生产涉及的设备数量庞大,常见的业务场景中包含数万到数百万个设备,而单设备的传感器数量也可能很多,每一个传感器上报对应的指标/测量值(比如温度、速度等等),最终上报时序数据的测点(也就是指标/测量值的数量)可能达到几十万、上百万,甚至亿级,还会随着业务扩展动态地继续增加。
同时,时序数据的采样频次可能很高,实际应用中可能达到毫秒级的上报。设备多、测点多、采样频次高,这就导致时序数据的体量是非常庞大的,存储的成本也就随之增加,而且因为业务的需要,经常需要实现历史数据长期的存储。
(2)工业特色需求
工业物联网业务背景也催生了与工业应用强相关的特性需求。测点层级管理成为工业领域使用时序数据库的功能需求之一。这意味着时序数据库需要能够处理从集团、厂站、系统、设备到传感器等不同层级的测点数据,并能够实现这些数据的有效组织和管理,让企业可以方便地对应到数据产生的不同层级。
此外,端边云数据协同也是时序数据库在工业应用中的关键需求。因为工业设备的部署状态与边缘计算的兴起,数据不再只是从设备端直接传输到集团云端,而是在厂站或省域的边缘节点进行初步处理和分析,再向云端进行同步。这种协同机制能够充分利用边端算力,节省云端带宽成本。因此,时序数据库需要确保数据在不同终端之间能够顺畅协同,从而实现更加智能和高效的工业管理。
02 基本能力:写入、压缩、查询、分析
了解了上述的时序数据管理难点,再结合时序数据库应用的主要业务场景,也就是针对工业大数据智能管理转型所衍生的状态监控、故障告警、数字画像等等,选型时需要注重的性能指标主要包括以下几项:
(1)写入吞吐
第一是写入吞吐,也就是单位时间内成功写入时序数据的量,这个值越大代表同样时间内能写入的数据量越大。体量庞大的时序数据,需要保障其能够全量写入时序数据库,不产生数据丢失,同时需要保障自带强时间属性的低频时序数据和高频时序数据的写入实时性。实际场景中,时序数据库的高通量写入性能需要达到百万或千万数据点/秒。
(2)压缩比
第二是压缩比,也就是原始数据量除以磁盘存储空间的值,这个值越大代表数据库的压缩性能越好。时序数据量庞大会很容易导致磁盘空间占用很高,而能够实现高压缩比的时序数据库,同样的数据量占用的空间、需要的存储成本也就越小。实际场景中,时序数据库的压缩比需要达到至少 20 倍以上,在企业对比数据存储成本时会更加有竞争力。
(3)查询耗时及分析能力
第三是查询耗时及分析能力,耗时越短、分析能力越强,也就代表着企业能够更快地获知所需的数据结果,并进行更多样的深度挖掘。实际应用中,对于最新值查询、聚合查询等业务常用场景,时序数据库的查询延迟需要控制在毫秒级。在保障海量数据处理低延迟的基础上,时序数据库还需要支持数据计算、查看数据走向、数据缺失修复等分析功能。
03 挑战需求:面向工业物联网进行优化
上述指标能够让时序数据库实现工业数据管理的基本需求,而面对工业物联网场景的需求特性,更好的时序数据库可以实现为工业物联网“量身定制”的适配架构及功能。
(1)测点建模
工业时序数据常常是按照类似“集团-省域-厂站-产线-设备-传感器”的层级彼此关联起来的,而因为数据量庞大、层级多,管理的时候存在天然的困难度。因此,在数据建模方面,时序数据库应该在保证存储规模的前提下,实现与工业场景中的层级相对应的数据结构,并能够做到以采集、应用等团队的不同视角,实现对数据结构按设备地点、分析应用的多面组织管理,以减少企业的学习、理解成本。
(2)数据同步
工业设备常常部署于多个省域的不同厂站,时序数据可能从多地同时产生,并需要汇总到省域侧或集团侧进行分析。因此,时序数据库需要适配多类主流协议,实现实时、易用、安全的数据同步方案,把设备端侧,厂站边侧,集团云侧的数据链路打通,方便企业更好地实现数据协同,也需要支持跨网闸传输、加密传输等工业场景所需要的特性传输方式,并保证在数据同步的过程中不影响本地的数据存储、计算。
(3)高可扩展
多终端、分散的工业设备上报时序数据的特性,也要求时序数据库能够以分布式的形态部署于多个厂站。面对多站点、更庞大的数据量,时序数据库需要保证集群容量的扩展性,能够管理上亿设备和测点,并具有高可用性,全面消除单点瓶颈,容忍部分节点失效,并能够随负载增加实现秒级扩容,及时分担负载压力。
(4)乱序写入、AI 分析
其实,对于上面提到的写入、分析等基础性能,也可以针对工业物联网场景进一步实现优化。比如,面对工业环境断网、延迟而产生的乱序数据,时序数据库需要能够有效应对,保障乱序数据写入的高实时性。再比如,面对工业故障监控、告警需求的进一步延伸,对于故障预测需求场景,时序数据库需要拥抱智能化分析,引入多类机器学习算法,以实现序列预测、异常预测等深度学习功能。
04 总结
针对不同工业领域和细分场景,时序数据库还可能有更多的关注重点,与更多技术融合的可能,上文总结的时序数据选型指标必将在未来进一步更新、扩展。
而国产自研的时序数据库 IoTDB,针对上面的选型指标都达到了稳定、高效的性能表现。IoTDB 的写入吞吐、存储占用、读取延迟等指标,在国际数据库第三方性能测试排行榜 benchANT 中,均位居第一,并在乱序数据写入、智能数据分析、数据协同传输、分布式扩展部署等工业物联网场景需求方向,都实现了相关功能的支持。
同时,IoTDB 商业化友好,具备便捷的二次开发能力,并已拥有一系列适配的易用性工具,包括集群管理工具 IoTDB-OpsKit、系统监控面板、可视化控制台 Workbench、组态软件等等,无疑能够更好地帮助数据库运维人员与业务人员发挥 IoTDB 的最大价值。
想要详细了解 IoTDB 的相关功能,欢迎点击阅读“时序数据库IoTDB:功能详解与行业应用”并联系我们!
相关文章:

时序数据库如何选型?详细指标总结!
工业物联网场景,如何判断什么才是好的时序数据库? 工业物联网将机器设备、控制系统与信息系统、业务过程连接起来,利用海量数据进行分析决策,是智能制造的基础设施,并影响整个工业价值链。工业物联网机器设备感知形成了…...
【前端】JavaScript入门及实战51-55
文章目录 51 函数52 函数的参数53 返回值54 练习55 return 51 函数 <!DOCTYPE html> <html> <head> <title></title> <meta charset "utf-8"> <script type"text/javascript">/* 函数:1. 函数也是…...

【引领未来智造新纪元:量化机器人的革命性应用】
在日新月异的科技浪潮中,量化机器人正以其超凡的智慧与精准的操作,悄然改变着各行各业的生产面貌,成为推动产业升级、提升竞争力的关键力量。今天,让我们一同探索量化机器人在不同领域的广泛应用价值,见证它如何以科技…...
山东航空小程序查询
山东航空小程序 1) 请求地址 https://scxcx.sda.cn/mohe/proxy?url/trp/ticket/search 2) 调用方式:HTTP post 3) 接口描述: 接口描述详情 4) 请求参数: {"dep": "TAO","arr": "HRB","flightDate&qu…...

MySQL添加索引时会锁表吗?
目录 简介Online DDL概念Online DDL用法总结 简介 在MySQL5.5以及之前的版本,通常更改数据表结构操作(DDL)会阻塞对表数据的增删改操作(DML)。 MySQL5.6提供Online DDL之后可支持DDL与DML操作同时执行,降低…...

算法日记day 16(二叉树的广度优先遍历|反转、对称二叉树)
一、二叉树的层序遍历 题目: 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3]…...

PolarisMesh源码系列--Polaris-Go注册发现流程
导语 北极星是腾讯开源的一款服务治理平台,用来解决分布式和微服务架构中的服务管理、流量管理、配置管理、故障容错和可观测性问题。在分布式和微服务架构的治理领域,目前国内比较流行的还包括 Spring Cloud,Apache Dubbo 等。在 Kubernete…...

vue3 vxe-grid修改currentPage,查询数据的时候,从第一页开始查询
1、当我们设置好VxeGrid.Options进行数据查询的时候,下面是可能的设置: const gridOptions reactive<BasicTableProps>({id: UserTable,showHeaderOverflow: false,showOverflow: true,keepSource: true,columns: userColumns,size: small,pagerConfig: {cur…...

电商数据集成之电商商品信息采集系统架构设计||电商API接口
一、引言 本架构设计文档旨在阐述基于 Selenium 的电商商品信息采集系统的整体架构,包括系统视图、逻辑视图、物理视图、开发视图和进程视图,并提供一个简单的采集电商商品信息的 demo。该系统通过模拟浏览器行为,实现对电商商品信息的自…...
Spring Cloud Stream 实现统一消息通信平台
1. 概述 Spring Cloud Stream:是Spring提供的消息通信框架,旨在构建跨不同消息中间件的统一通信平台。目的:通过消息通信机制降低分布式系统中服务间的耦合度,实现异步服务交互。 2. 消息通信与RPC RPC:远程过程调用…...

uniapp安卓plus原生选择系统文件
uniapp安卓plus原生选择系统文件 效果: 组件代码: <template xlang"wxml" minapp"mpvue"><view></view> </template> <script>export default {name: file-manager,props: {},data() {return {is…...

Go语言 Import导入
本文主要介绍Go语言import导入使用时注意事项和功能实现示例。 目录 Import 创建功能文件夹 加法 减法 主函数 优化导入的包名 .引入方法 总结 Import 创建功能文件夹 做一个计算器来演示,首先创建test文件夹。 加法 在test文件夹中创建add文件夹ÿ…...

一款异次元小清新风格的响应式wordpress个人博客主题
一款异次元小清新风格的响应式个人博客主题。这是一款专注于用户阅读体验的响应式 WordPress 主题,整体布局简洁大方,针对资源加载进行了优化。 Kratos主题基于Bootstrap和Font Awesome的WordPress一个干净,简单且响应迅速的博客主题&#x…...

【cocos creator】ts中export的模块管理
在 TypeScript(TS)中,export 和 import 的概念与 Java 中的 public 类、接口以及 import 语句有一些相似之处。可以用以下方式来类比理解: Export 在 TypeScript 中,export 用于将模块中的变量、函数、类等暴露给外部…...
QT JSON使用实例
下面是一个使用Qt框架的示例代码,展示如何获取仪器的状态,将其打包成JSON格式,保存到当前目录下的JSON文件中,然后通过FTP发送该文件。 1. 准备工作 确保你已经安装了Qt,并创建一个新的Qt Console项目或Qt Widgets项目…...

浅聊 Three.js 屏幕空间反射SSR-SSRShader
浅聊 Three.js 屏幕空间反射SSR(2)-SSRShader 前置基础 渲染管线中的相机和屏幕示意图 -Z (相机朝向的方向)||| -------------- <- 屏幕/投影平面| | || | || | (f) | <- 焦距| | ||…...
Windows图形界面(GUI)-DLG-C/C++ - 月历控件(MonthCalendar)
公开视频 -> 链接点击跳转公开课程博客首页 -> e链接点击跳转博客主页 目录 月历控件(MonthCalendar) 使用场景 控件操作 月历控件(MonthCalendar) 使用场景 日程安排:用户可以通过月历控件选择特定的日期来安排会议或活动。事件管理&#x…...

【Langchain大语言模型开发教程】基于文档问答
🔗 LangChain for LLM Application Development - DeepLearning.AI Embedding: https://huggingface.co/BAAI/bge-large-en-v1.5/tree/main 学习目标 1、Embedding and Vector Store 2、RetrievalQA 引包、加载环境变量 import osfrom dotenv import…...

大厂面试-基本功
大厂面试第4季 服务可用性多少个9是什么意思遍历集合add或remove操作bughashcode冲突案例BigdecimalList去重复IDEA Debugger测试框架ThreaLocal父子线程数据同步 InheritableThreadLocal完美解决线程数据同步方案 TransmittableThreadLocal 服务可用性多少个9是什么意思 遍历集…...

RV1103使用rtsp和opencv推流视频到网页端
参考: Luckfox-Pico/Luckfox-Pico-RV1103/Luckfox-Pico-pinout/CSI-Camera Luckfox-Pico/RKMPI-example Luckfox-Pico/RKMPI-example 下载源码 其中源码位置:https://github.com/luckfox-eng29/luckfox_pico_rtsp_opencv 使用git clone由于项目比较大&am…...

docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...