createOrcaLatestKeyedStreamTable
语法
createOrcaLatestKeyedStreamTable(name, keyColumn, timeColumn, colNames,
colTypes, [asyncWrite=true], [compress=true], [cacheSize],
[retentionMinutes=1440], [flushMode=0], [preCache], [cachePurgeTimeColumn],
[cachePurgeInterval], [cacheRetentionTime])
详情
创建一个最新值键值流数据表,并将它持久化到磁盘上。参考 latestKeyedStreamTable 和 enableTableShareAndPersistence。
与 StreamGraph::latestKeyedSource
的区别在于,createOrcaLatestKeyedStreamTable 无需依赖流图。
参数
name 表示流表的名称。字符串标量,可以传入完整的流表全限定名(如 trading.orca_table.trades);也可以仅提供流表名(如 trades),系统会根据当前的 catalog 设置自动补全为对应的全限定名。
timeColumn 字符串标量或长度为 2 的向量,分别用于指定 1 个或 2 个时间列。当仅指定 1 个时间列时,该列可以为整型或时间类型;当指定 2 个时间列时,第 1 列必须是 DATE 类型,第 2 列则是 TIME, SECOND 或 NANOTIME 类型。通过这两列,可以共同确定唯一的时间值。
colNames 是一个向量,表示列名。
colTypes 是一个向量,表示每列的数据类型,支持数组向量类型和元组(ANY)类型。可使用表示数据类型的系统保留字或相应的字符串。
asyncWrite 可选参数,是一个布尔值,表示是否异步持久化数据到磁盘。默认值为 true,流数据写入内存即为写入成功,持久化到磁盘的操作将会由另一个线程执行。
持久化数据到磁盘包含两个步骤:
-
写内存数据到操作系统缓存
-
写缓存数据到磁盘(是否开启同步刷盘由参数 flushMode 决定)
例子
if(!existsCatalog("demo")){
createCatalog("demo")
}
go
use catalog demo
createOrcaLatestKeyedStreamTable("trade", `symbol, `time, `time`symbol`price`volume, [DATETIME,SYMBOL,DOUBLE,LONG])
