时序数据库如何选型?详细指标总结!
工业物联网场景,如何判断什么才是好的时序数据库?
工业物联网将机器设备、控制系统与信息系统、业务过程连接起来,利用海量数据进行分析决策,是智能制造的基础设施,并影响整个工业价值链。工业物联网机器设备感知形成了海量时间序列数据(带时间标签的数据,每条时间序列是按时间戳顺序存贮的一组数据点),蕴含丰富的工业语义,是工业大数据的规模与价值主体。
为应对海量工业物联网数据管理,更好地实现工业数字化、智能化发展,专门管理时序数据的时序数据库产品应运而生。那么如果需要使用时序数据库,该如何衡量时序数据库的性能表现?好用的时序数据库,又该满足哪些条件?本文将梳理时序数据库的性能选型标准,供大家参考。
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…...
与Bug较量:Codigger之软件项目体检Software Project HealthCheck来帮忙
在软件工程师的世界里,与 Java 小程序中的 Bug 作战是一场永不停歇的战役。每一个隐藏在代码深处的 Bug 都像是一个狡猾的敌人,时刻准备着给我们的项目带来麻烦。 最近,我就陷入了这样一场与 Java 小程序 Bug 的激烈较量中。这个小程序原本应…...
Git --- Branch Diverged
Git --- Branch Diverged Branch Diverged是如何形成的如何解决RebaseMerge Branch Diverged是如何形成的 尝试提交并将更改推送到 master 分支时,是否看到这条烦人的消息 原因是: 直到更改 B 之前,我的分支和“origin/master”完全相同。从…...
go标准库---net/http服务端
1、http简单使用 go的http标准库非常强大,调用了两个函数就能够实现一个简单的http服务: func HandleFunc(pattern string, handler func(ResponseWriter, *Request)) func ListenAndServe(addr string, handler Handler) error handleFunc注册一个路…...
Linux文件和目录常用命令
1.操作命令 查看目录内容 ls 切换目录 cd 创建和删除操作 touch rm mkdir 拷贝和移动文件 cp mv 查看文件内容 cat more grep 其他 echo 重定向 > 和 >> 管道 | 1.1 终端实用技巧 1>自动补全 在敲出 文件/目录/命令 的前几个字母之后,按下…...
【C++刷题】优选算法——链表
链表常用技巧和操作总结 常用技巧 画图 引入虚拟头节点 不要吝啬空间,大胆定义变量 快慢双指针常用操作 创建一个新节点 尾插 头插 两数相加 ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {int carry 0;ListNode* newHead new ListNode, *cur newHea…...
Flex和Bison
Flex和Bison是Linux和Unix环境下两个非常强大的工具,分别用于生成词法分析器和语法分析器。它们在编译器设计、文本处理等领域有着广泛的应用。下面我将详细介绍Flex和Bison的基本概念、功能、用法以及它们之间的关系。 一、Flex 1. 基本概念 Flex(其…...
Matlab-FPGA 小数转换为定点二进制小数脚本和转coe文件格式脚本
Matlab-FPGA 小数转换为定点二进制小数脚本: % 更新于2023年6月17日,修改旋转因子文件,不修改fpga %首先明确我们的二维FFT的数组维数,此为1024*8的二维矩阵,1024行,8列 column 1024; row 8; nk[]; Ncolumn*row; fo…...
逆向案例二十三——请求头参数加密,某区块链交易逆向
网址:aHR0cHM6Ly93d3cub2tsaW5rLmNvbS96aC1oYW5zL2J0Yy90eC1saXN0L3BhZ2UvNAo 抓包分析,发现请求头有X-Apikey参数加密,其他表单和返回内容没有加密。 直接搜索关键字,X-Apikey,找到疑似加密位置,注意这里…...
CSS 导航栏:设计、定制与优化
CSS 导航栏:设计、定制与优化 CSS(层叠样式表)是网页设计中不可或缺的一部分,它允许开发者通过定义样式来控制网页的布局和外观。在网页设计中,导航栏是一个关键元素,它帮助用户浏览网站并找到他们感兴趣的…...
JS 如何处理链接被用户点击中键的操作
今天在开发中遇到一个问题,在使用类似Bootstrap中的Tabs组件时,当在tab导航链接点击中键时会打开一个新的窗口访问链接,于是我尝试在别的普通链接上点击中键时也会如此,我猜测这是浏览器的默认行为。 由于我开发的是一个浏览器在…...
网站vr用什么做/线上宣传渠道和宣传方式
SAM开源代码、预训练模型以及其它资源 SAM完全开源,这也是继MetaAI贡献的LLaMA之后又一个十分卓越的开源贡献!很快,各种新的分割应用应该就会出现了! 目前,SAM开源了3个模型,即 vit_h、vit_l和vit_b&…...
新企业在哪里做网站好/近期的新闻消息
clean-webpack-plugin 详见上一篇文章,点击查看 copy-webpack-plugin 能够将文件从A路径拷贝到B路径 使用方法: npm i copy-webpack-plugin -D//webpack.config.js let CopyWebpackPlugin require(copy-webpack-plugin);plugins:[new CopyWebpackPlugi…...
网站模板怎么连接域名/cnzz
jupyter notebook,交互式的笔记本 安装 #安装 pip install jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple/ #安装出问题,重启电脑 #以管理员运行命令窗口 #开始> window系统> 命令提示符 >右键 以管理员身份运行#启动 >jupyter no…...
深圳知名网站建设哪家好/做推广网络
1.在templates文件夹下新建admin文件夹 2.将D:\Project\Study\python\django_test\venv\Lib\site-packages\django\contrib\admin\templates\admin下面的base_site.html拷贝到admin下面 3.修改该html {% extends "admin/base.html" %}{% block title %}{{ title }}…...
对电子商务网站建设的感想/网络营销的六大特征
Maven 教程 Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。 Mave…...
哈尔滨关键词优化推广/如何做谷歌seo推广
SRILM是一个统计和分析语言模型的工具,提供一些命令行工具,如ngram,ngram-count,可以很方便的统计NGRAM的语言模型。 1,下载 我开始在这个站上下载,感觉很慢。 http://www.speech.sri.com/projects/srilm/download.h…...