可以使用sqlCol函数生成元代码的方法实现: (1)生成去掉全为NULL的列的元代码 (2)执行元代码 示例代码如下: sql(select=sqlCol(t.schema().colDefs.name[each(isValid, t.values()).sum()!=0]), from=t).eval() 结果如下:
回答于 2021-07-26 16:52
可以尝试下面的写法进行过滤查询: t[each(isValid, t.values()).rowOr()] 结果:
回答于 2021-07-26 16:44
具体可以参考官网的share函数用法。 针对上述的问题,是share函数的第一种用法,即将一个内存表共享到该节点的所有会话中,共享对象需要是一个内存表。 getStreamEngine(`IndexTsAggr)返回的是流数据引擎的句柄,不能成为共享的对象。
回答于 2021-07-26 13:39
可以尝试这样写: metrics =<[first(LastPrice), last(LastPrice),max(LastPrice),min(LastPrice),last(TotalVolumeTrade)-first(TotalVolumeTrade),last(TotalValueTrade)-first(TotalValueTrade),avg(time(UpdateTime1)-MDTime)]>createTimeSeriesEngine(name="IndexTsAggr", windowSize=60000, step=60000, metri...
回答于 2021-07-21 18:39
可以尝试这样的写法: schemaTable=table( array(SYMBOL,0) as symbol, array(SYMBOL,0) as market, array(DATE,0) as date, array(TIME,0) as time, array(DOUBLE,0) as preClose, array(DOUBLE,0) as open, array(DOUBLE,0) as high, array(DOUBLE,0) as low, array(DOUBLE,0) as last, array(INT,0...
回答于 2021-07-21 18:19
可以通过getStreamEngineStat()函数监视所有引擎的运行情况。 如果想查询指定的引擎使用情况,可以这样使用,比如查询该节点上所有时间序列聚合引擎的运行情况: getStreamEngineStat().TimeSeriesEngine 结果如下: memoryUsed表示该引擎占用的内存大小,时间序列引擎占用内存大小和garbageSize有关,garbageSize的...
回答于 2021-07-21 18:00
DolphinDB提供了流数据处理监控函数 getStreamingStat(),可以通过以下函数进行更详细的查询: getStreamingStat().subWorkers //查询订阅状态 查询结果: 如果queueDepth没有堆积的情况,说明流数据的消费没有阻塞。 getStreamingStat().pubConns //发布链接情况 查询结果: 如果queueDepth没有堆积的情况,...
回答于 2021-07-21 16:55
可以通过下面的方法,在函数内部定义共享表: share(table(1:0, `updateTime`maxQty`maxDollarVolume`sumDollarVolume`count, [TIMESTAMP, INT, DOUBLE, DOUBLE, INT]), "outputTable") 关于上述的问题,原因如下: share语句在编译时执行,share函数在运行时执行。所以要求share语句全局可见,不能在一个函数定义中。...
回答于 2021-07-13 21:26
对where条件搜索上性能差别不大,但是有以下几个缺点: 1. 分区字段不能这样做,这样的long值系统没有办法判断落入哪一个分区 2. 用于时序相关的函数时,比如需要转成日期,再做分组moving函数计算时,会需要转字符串再转时间类型,效率上肯定有很大影响 因此,建议时间列使用DolphinDB内置的时间类型。
回答于 2021-07-09 12:38