StreamGraph::keyedSource

语法

StreamGraph::keyedSource(name, keyColumn, colNames, colTypes, [asyncWrite=true], [compress=true], [cacheSize], [retentionMinutes=1440], [flushMode=0], [preCache], [cachePurgeTimeColumn], [cachePurgeInterval], [cacheRetentionTime])

参数

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

keyColumn 是一个字符串或向量,表示主键。主键的数据类型必须属于以下类别:INTEGRAL, TEMPORAL, LITERAL 或 FLOATING。

colNames 是一个向量,表示列名。

colTypes 是一个向量,表示每列的数据类型,支持数组向量类型和元组(ANY)类型。可使用表示数据类型的系统保留字或相应的字符串。

asyncWrite 可选参数,是一个布尔值,表示是否异步持久化数据到磁盘。默认值为 true,流数据写入内存即为写入成功,持久化到磁盘的操作将会由另一个线程执行。

注:

持久化数据到磁盘包含两个步骤:

  • 写内存数据到操作系统缓存

  • 写缓存数据到磁盘(是否开启同步刷盘由参数 flushMode 决定)

例子

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

g = createStreamGraph("indicators")
g.keyedSource("trade", `symbol, `time`symbol`price`volume, [DATETIME,SYMBOL,DOUBLE,LONG])