registerStreamingSQL

语法

registerStreamingSQL(query, [queryId], [logTableCacheSize])

参数

query 字符串标量,表示要注册的流式 SQL 查询语句。

queryId 可选参数,字符串标量,表示 query 对应的 ID 名称。格式要求与变量名相同,只能包含字母、数字及下划线,且必须以字母开头。

  • 若指定的 queryId 已存在,系统会自动在其后追加时间戳生成唯一 ID。
  • 若不指定,系统自动生成唯一 ID。

logTableCacheSize 可选参数,正整数,表示结果变更日志在内存中的最大缓存条数,默认缓存全部。只要存在订阅,缓存中未发布的数据就会被保留,不会被清理。已发布数据清理规则如下:

  • 若单次插入的日志条数不超过 logTableCacheSize,当内存中数据总条数达到 logTableCacheSize * 2 时,开始清理旧数据。
  • 若单次插入的日志条数超过 logTableCacheSize,当内存中数据总条数达到插入行数与 logTableCacheSize 之和的1.2倍,开始清理旧数据。

详情

注册一条流式 SQL 查询,成功注册后返回一个唯一的 queryId。系统会基于该查询生成一个与 queryId 同名的共享流表,用于写入结果变更日志。

返回值:字符串标量。

例子

t=table(1..10 as id,rand(100,10) as val)
share t as st
declareStreamingSQLTable(st)
registerStreamingSQL("select avg(val) from st","sql_avg")

// 查看流式 SQL 查询的状态
getStreamingSQLStatus("sql_avg")

相关函数:declareStreamingSQLTable, registerStreamingSQL