Files
2025-07-25 10:57:32 +08:00

2.6 KiB
Raw Permalink Blame History

StreamSQL 综合测试演示

这个示例提供了一个统一的入口来测试和验证StreamSQL的各种功能特性。

功能覆盖

1. 基础数据过滤

  • 简单的WHERE条件过滤
  • 实时数据流处理
  • 结果回调处理

2. 聚合分析

  • 滚动窗口聚合TumblingWindow
  • 多种聚合函数AVG、COUNT、MAX、MIN
  • 按字段分组

3. 滑动窗口

  • 滑动窗口分析SlidingWindow
  • 窗口大小和滑动间隔配置
  • 连续数据流处理

4. 嵌套字段访问

  • 多层嵌套对象访问
  • 复杂数据结构处理
  • 嵌套字段条件过滤

5. 自定义函数

  • 数学函数square、circle_area
  • 转换函数f_to_c
  • 函数注册和使用

6. 复杂查询

  • 多种功能组合使用
  • 嵌套字段 + 自定义函数 + 聚合
  • 复杂业务场景模拟

运行方式

cd examples\comprehensive-test
go run main.go

预期输出

程序会依次执行6个测试场景每个场景都会输出相应的结果

  1. 基础过滤测试显示温度大于25度的设备告警
  2. 聚合分析测试:显示每个设备的温度统计信息
  3. 滑动窗口测试:显示滑动窗口内的温度分析
  4. 嵌套字段测试:显示复杂数据结构的字段提取
  5. 自定义函数测试:显示自定义函数的计算结果
  6. 复杂查询测试:显示综合功能的查询结果

测试数据

  • 传感器数据包含设备ID、温度、湿度等信息
  • 嵌套结构:设备信息、位置信息、传感器数据的多层嵌套
  • 随机数据:使用随机数生成模拟真实的传感器数据流

自定义函数说明

square(x)

  • 功能:计算数值的平方
  • 参数:数值
  • 返回:平方值

f_to_c(fahrenheit)

  • 功能:华氏度转摄氏度
  • 参数:华氏度温度值
  • 返回:摄氏度温度值
  • 公式(F - 32) × 5/9

circle_area(radius)

  • 功能:计算圆的面积
  • 参数:半径
  • 返回:圆的面积
  • 公式:π ×

注意事项

  1. 窗口触发:聚合查询需要等待窗口时间到达或手动触发
  2. 数据格式:确保输入数据格式正确,特别是嵌套字段的结构
  3. 函数注册:自定义函数需要在使用前注册
  4. 资源清理使用defer确保StreamSQL实例正确关闭

扩展建议

  • 可以添加更多的自定义函数
  • 可以测试更复杂的窗口配置
  • 可以添加错误处理和异常数据测试
  • 可以集成性能测试和压力测试