可改用下列sql试试: select top 1 * from t context by date,sym hashmap比较耗内存。这个context by使用排序算法,节约内存。
回答于 2021-05-11 12:35
这些因子可以翻译成DolphinDB database的代码,然后在内置的流数据框架中完成。 def factorVolDiff(t){ w = exp(-10 * 0..9/t.mp[0]) return select 0.5*log(rowSum([bv1,bv2,bv3,bv4,bv5,bv6,bv7,bv8,bv9,bv10]*w)/rowSum([av1,av2,av3,av4,av5,av6,av7,av8,av9,av10]*w)) as volDiff from t } 上面这个写法是直...
回答于 2021-05-11 12:34
这里可使用DolphinDB database的部分应用实现。部分应用是指固定一个函数的部分参数,产生一个参数较少的函数。 ploop(piep{,data_dhz},conf)
回答于 2021-05-11 12:34
用select * from tableName不会返回所有的行。默认情况下,流计算的表把所有数据保存在内存中。如果流数据表太大,系统可能会出现内存不足的情况。为了避免内存不足的问题,我们可以设置缓存大小的界限。如果流数据表的行数达到这个界限,前面一半的记录行会从内存中清理。可以用getPersistenceMeta(table)观察一下。
回答于 2021-05-11 12:33
先装 libffi-devel,再编译 python3.7。 ubuntu sudo apt-get install libffi-dev Centos yum install libffi-devel -y
回答于 2021-05-11 12:32
取连续合约数据,可以对表A中的每一行,分别提交一个query,最后用union合并 def getTickData(dict){ curDate = dict.TradingDay curID = dict.InstrumentID curProductID = curID.left(2) return select TradingDay, UpdateTime, InstrumentID, LastPrice from loadTable("db", "tick") where TradingDay = curDate,...
回答于 2021-05-11 12:31
Socket::write errno =113,113即 No route to host。请检查一下是不是防火墙把9002端口过滤了。
回答于 2021-05-11 12:28
这个原因一般是因为不同job/节点,写入的分区overlap了。在DolphinDB database中,同一个分区不能被多个writer并发写入,当一个分区被某一个事务A锁定之后,另一个事务B试图再次去锁定这个分区时,系统立刻会抛出异常导致事务B失败回滚。详见https://github.com/dolphindb/... 这里虽然是同时往2张表写,但他们属于同一个...
回答于 2021-05-11 12:26
在创建定时作业时,若作业函数是run一个脚本文件,因为序列化时只保存了文件名,没有保存文件内容,所以需要把依赖的自定义函数都放到脚本文件中,否则会因为找不到自定义的函数而执行失败。上述问题的定时任务运行脚本时,就是没找到foo的函数定义,因此需要把foo定义写入脚本文件testjob.dos中。
回答于 2021-05-11 12:25
defined第二个参数值用SHARED,或者用objs函数,代码如下: stName="mtopst" if (stName in objs(true).name) dropStreamTable(stName) colnames = [`ts, `minID,`maxID,`err ] coltypes = [TIMESTAMP, INT, INT, STRING] st1= streamTable(10000:0, colnames, coltypes) enableTableShareAndPersistence...
回答于 2021-05-11 12:22