registerStreamingSQL
语法
registerStreamingSQL(query, [queryId],
[logTableCacheSize])
详情
注册一条流式 SQL 查询,成功注册后返回一个唯一的 queryId。系统会基于该查询生成一个与 queryId 同名的共享流表,用于写入结果变更日志。
注意:仅被声明的表才能通过 registerStreamingSQL 注册流式 SQL 查询。
参数
query 字符串标量,表示要注册的流式 SQL 查询语句。
queryId 可选参数,字符串标量,表示 query 对应的 ID 名称。格式要求与变量名相同,只能包含字母、数字及下划线,且必须以字母开头。
- 若指定的 queryId 已存在,系统会自动在其后追加时间戳生成唯一 ID。
- 若不指定,系统自动生成唯一 ID。
logTableCacheSize 可选参数,正整数,表示结果变更日志在内存中的最大缓存条数,默认缓存全部。只要存在订阅,缓存中未发布的数据就会被保留,不会被清理。已发布数据清理规则如下:
- 若单次插入的日志条数不超过 logTableCacheSize,当内存中数据总条数达到 logTableCacheSize * 2 时,开始清理旧数据。
- 若单次插入的日志条数超过 logTableCacheSize,当内存中数据总条数达到插入行数与 logTableCacheSize 之和的1.2倍,开始清理旧数据。
返回值
字符串标量。
例子
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")
