一款轻量级的、基于 SQL 的物联网边缘实时流处理引擎GO源码
一款轻量级的、基于 SQL 的物联网边缘流处理引擎。它能够高效地处理和分析无界数据流。
功能特性- 轻量级
- SQL语法处理数据
- 数据分析
- 内置多种窗口类型:滑动窗口、滚动窗口、计数窗口
- 内置聚合函数:MAX, MIN, AVG, SUM, STDDEV,MEDIAN,PERCENTILE等
- 支持分组聚合
- 支持过滤条件
- 高可扩展性
- 提供灵活的函数扩展
- 完整的自定义函数系统:支持数学、字符串、转换、聚合、分析等8种函数类型
- 简单易用的函数注册:一行代码即可注册自定义函数
- 运行时动态扩展:支持在运行时添加、移除和管理函数
- 接入RuleGo生态,利用RuleGo组件方式扩展输出和输入源
- 与RuleGo 集成
- 利用RuleGo丰富灵活的输入、输出、处理等组件,实现数据源接入以及和第三方系统联动
支持多种函数类型,包括数学、字符串、转换、聚合、分析、窗口等上百个函数支持的函数类型- 数学函数 - sqrt, power, abs, 三角函数等
- 字符串函数 - concat, upper, lower, trim等
- 转换函数 - cast, hex2dec, encode/decode等
- 聚合函数 - 自定义聚合逻辑
- 分析函数 - lag, latest, 变化检测等
窗口由于流数据是无限的,因此不可能将其作为一个整体来处理。窗口提供了一种机制,将无界的数据分割成一系列连续的有界数据来计算。StreamSQL 内置以下窗口类型: 滑动窗口(Sliding Window)
- 定义:基于时间的窗口,窗口以固定的时间间隔向前滑动。例如,每 10 秒滑动一次。
- 特点:窗口的大小固定,但窗口的起始点会随着时间推移而不断更新。适合对连续时间段内的数据进行实时统计分析。
- 应用场景:在智能交通系统中,每 10 秒统计一次过去 1 分钟内的车辆流量。
滚动窗口(Tumbling Window)
- 定义:基于时间的窗口,窗口之间没有重叠,完全独立。例如,每 1 分钟生成一个窗口。
- 特点:窗口的大小固定,且窗口之间互不重叠,适合对固定时间段内的数据进行整体分析。
- 应用场景:在智能农业监控系统中,每小时统计一次该小时内农田的温度和湿度。
计数窗口(Count Window)
- 定义:基于数据条数的窗口,窗口大小由数据条数决定。例如,每 100 条数据生成一个窗口。
- 特点:窗口的大小与时间无关,而是根据数据量来划分,适合对数据量进行分段处理。
- 应用场景:在工业物联网中,每处理 100 条设备状态数据后进行一次聚合计算。
流(Stream)- 定义:流是数据的连续序列,数据以无界的方式产生,通常来自于传感器、日志系统、用户行为等。
- 特点:流数据具有实时性、动态性和无限性,需要及时处理和分析。
- 应用场景:物联网设备产生的实时数据流,如温度传感器数据、设备状态数据等。
时间语义

链接: https://pan.baidu.com/s/1-HtNpQ84BGYW2FVZ3jgvNw
提取码下载:
|