filter 参数需要配合setStreamTableFilterColumn函数一起使用。使用setStreamTableFilterColumn指定流数据表的过滤列,流数据表过滤列在filter中的数据才会发布到订阅端,不在filter中的数据不会发布。filter不支持过滤BOOL类型数据。
filter 参数可以使用以下三种方法指定。其中范围过滤与哈希过滤于1.30.3版本发布。
- 值过滤:一个向量。
- 范围过滤:一个数据对。范围包含下限值,但不包括上限值。
- 哈希过滤:一个元组。第一个元素表示bucket的个数;第二个元素是一个标量或数据对,其中标量表示bucket的索引(从0开始),数据对表示bucket的索引范围(包含下限值,但不包括上限值)。
- 设置filter的示例如下:
share streamTable(10000:0,`time`symbol`price, [TIMESTAMP,SYMBOL,INT]) as trades
setStreamTableFilterColumn(trades, `symbol)
trades_1=table(10000:0,`time`symbol`price, [TIMESTAMP,SYMBOL,INT])
filter=symbol(`IBM`GOOG)
subscribeTable(tableName=`trades, actionName=`trades_1, handler=append!{trades_1}, msgAsTable=true, filter=filter);
session的设置,可参阅k线计算教程第1.2节
https://gitee.com/dolphindb/Tutorials_CN/blob/master/OHLC.md#12-%E6%8C%87%E5%AE%9Ak%E7%BA%BF%E7%AA%97%E5%8F%A3%E7%9A%84%E8%B5%B7%E5%A7%8B%E6%97%B6%E5%88%BB