当前位置: 首页 > news >正文

时序数据库的流计算支持

一、时序数据及其特点 

时序数据(Time Series Data)是基于相对稳定频率持续产生的一系列指标监测数据,比如一年内的道琼斯指数、一天内不同时间点的测量气温等。时序数据有以下几个特点:

  • 历史数据的不变性
  • 数据的有效性
  • 数据的时效性
  • 结构化的数据
  • 数据的大量性

二、时序数据库基本架构

针对时序数据的特点,时序数据库一般具有以下特性:

  • 高速的数据入库
  • 数据的生命周期管理
  • 数据的流处理
  • 高效的数据查询
  • 定制的数据压缩

三、流计算介绍 

流计算主要是指针对实时获取来自不同数据源的海量数据,经过实时分析处理,从而获得有价值的信息。常见的业务场景包括实时事件的快速反应,市场变化的实时告警,实时数据的交互分析等。流计算一般包括如下几方面的功能:

1)过滤和转换 (filter & map)

2)聚合以及窗口函数 (reduce,aggregation/window)

3)多数据流合并以及模式匹配 (joining & pattern detection)

4)从流到块处理

四、时序数据库对流计算的支持   

  • 案例一:使用定制化的流计算 API,如下面例子所示:

from(bucket: "mydb")  
|> range(start: -1h)  
|> filter(fn: (r) => r["_measurement"] == "mymeasurement")  
|> map(fn: (r) => ({ r with value: r.value * 2 }))  
|> filter(fn: (r) => r.value > 100)  
|> aggregateWindow(every: 1m, fn: sum, createEmpty: false)  
|> group(columns: ["location"])  
|> join(tables: {stream1: {bucket: "mydb", measurement: "stream1", start: -1h}, stream2: {bucket: "mydb", measurement: "stream2", start: -1h}}, on: ["location"])  
|> alert(name: "value_above_threshold", message: "Value is above threshold", crit: (r) => r.value > 100)  
|> to(bucket: "mydb", measurement: "output", tagColumns: ["location"])

  • 案例二:使用类 SQL 指令,创建流计算以及定义流计算规则,如下:

CREATE STREAM current_stream        
TRIGGER AT_ONCE        
INTO current_stream_output_stb AS        
SELECT             _wstart as start,              _wend as end,              max(current) as max_current        FROM meters        WHERE voltage <= 220        INTEVAL (5S) SLIDING (1s);
http://www.lryc.cn/news/93820.html

相关文章:

  • springboot启动流程 (3) 自动装配
  • ansible-roles模块
  • 聊聊我做 NeRF-3D重建性能优化经历
  • 未磁科技全球首台64通道无液氦心磁图仪及首个培训基地落户北京安贞医院
  • SpringBoot 如何使用 ApplicationEventPublisher 发布事件
  • 【深度学习】2-3 神经网络-输出层设计
  • Python网络爬虫开发:使用PyQt5和WebKit构建可定制的爬虫
  • Laya3.0游戏框架搭建流程(随时更新)
  • .net 软件开发模式——三层架构
  • SpringBoot如何优雅的实现重试功能
  • 【CEEMDAN-VMD-GRU】完备集合经验模态分解-变分模态分解-门控循环单元预测研究(Python代码实现)
  • OpenText Exceed TurboX(ETX)—— 适用于 UNIX、Linux 和 Windows 的远程桌面解决方案
  • 【人工智能】— 逻辑回归分类、对数几率、决策边界、似然估计、梯度下降
  • k8s pod “cpu和内存“ 资源限制
  • datagrip 连接 phoenix
  • 黑客入侵的常法
  • VB报警管理系统设计(源代码+系统)
  • Redis入门 - Redis Stream
  • 微服务中常见问题
  • 更新删除清理购物车
  • 基于Intel NUC平台的字符设备陀螺仪GX5-25驱动程序
  • 建立小型医学数据库(总结)
  • Git学习笔记
  • vue面试题1. 请说下封装 vue 组件的过程?2. Vue组件如何进行传值的?3. Vue 组件 data 为什么必须是函数?4. 讲一下组件的命名规范
  • Docker使用记录
  • OpenCV(图像处理)-基于Python-形态学处理-开运算、闭运算、顶帽、黑帽运算
  • chatgpt赋能python:Python支持跨平台软件开发
  • 哈工大计算机网络课程网络层协议详解之:CIDR与路由聚集
  • C++ 教程(19)——日期 时间
  • React 应用 Effect Hook 函数式中操作生命周期