Dstream::haKeyedBuffer

语法

DStream::haKeyedBuffer(name, keyColumn, raftGroup, cacheLimit, [retentionMinutes=1440])

详情

创建一个高可用键值流数据表,用于存储流计算中间结果。参考 haStreamTable

返回值:一个 DStream 对象。

参数

name 表示流表的名称。字符串标量,可以传入完整的流表全限定名(如 trading.orca_graph.trades);也可以仅提供流表名(如 trades),系统会根据当前的 catalog 设置自动补全为对应的全限定名。

keyColumn 字符串标量或向量,指定主键列。

raftGroup 是一个大于1的整数,表示 Raft 组的 ID。

cacheLimit 是一个整数,表示高可用流数据表在内存中最多保留多少行。如果 cacheLimit 是小于100,000的正整数,它会被自动调整为100,000。

retentionMinutes 可选参数,是一个整数,表示保留大小超过 1GB 的 log 文件的时间(从文件的最后修改时间开始计算),单位是分钟。默认值是1440,即一天。

例子

if (!existsCatalog("orca")) {
	createCatalog("orca")
}
go
use catalog orca

g = createStreamGraph("indicators")

g.source("trade", 1:0, `time`symbol`price`volume, [DATETIME,SYMBOL,DOUBLE,LONG])
    .timeSeriesEngine(windowSize=60, step=60, metrics=[<first(price) as open>, <max(price) as high>, <min(price) as low>, <last(price) as close>, <sum(volume) as volume>], timeColumn=`time, keyColumn=`symbol)
    .haKeyedBuffer(name="ha_keyedTable", keyColumn=`symbol, raftGroup=3, cacheLimit=5000)