logger
logger

性别: 注册于 2021-06-15

向TA求助
20金币数
1360 经验值
0个粉丝
主页被访问 2282 次

120 个回答

0 赞同

如何优化流表订阅入库的性能

流表的数据预处理程序要提升性能,主要的思路是将处理的数据从一条条改成一批批处理。DolphinDB Script是一个向量化的编程语言,处理批量数据远比一条条处理要高效。建议:1、将udf改写成支持处理多行数据,当前默认t1只有一行,只处理第一条数据。2、udf里面re表看代码是需要对历史数据按分组取最后一条数据。 re = sele...

回答于 2021-06-15 16:57

0 赞同

有个程序往DolphinDB里写数据,另一个程序会去读,它会读到一个...

DolphinDB的DFS表数据读写是支持快照隔离的。一次写入的数据,读的时候要么全部读不到,要么全部读到,哪怕数据跨越几个分区。这也是dolphindb区别于其他时序数据库的地方。内存表(不分区)的读写也是支持快照隔离的。分区的不支持。

回答于 2021-06-15 16:56

0 赞同

pip install时提示Read timed out

这是由于国内网络的限制,下载速度慢而引起的。解决的办法有:1.设置超时时间,比如: pip --default-timeout=100 install dolphindb 2.更换pip下载源可以在pip后面加上-i参数,指定pip源。比如换用清华大学pip源[https://pypi.tuna.tsinghua.ed...]如下: pip install dolphindb -i https://pypi.tuna.tsinghua.edu.c...

回答于 2021-06-15 16:56

0 赞同

有什么高效的方法从vector转成matrix

DolphinDB的矩阵在物理存储是按照列优先(column major)进行的。也就是说,矩阵在内存中的存储模型相当于是把矩阵的每一个列首尾连接起来占用了一段连续的空间。因此,按列读写矩阵比按行读写有更高的效率。下面我们通过具体代码来测试。 按行读写测试100次,耗时月1480ms timer(100) { v = double(1..1000) m1 = matr...

回答于 2021-06-15 16:55

0 赞同

分组计算时要包含前一组的最后一条记录,怎么实现

SQL的分组计算中,一条记录只能属于一个组,不能满足问题中的要求。DolphinDB中的窗口关联(window join)允许窗口之间有重叠,可以实现你的需求。window join允许指定一个窗口的相对起始范围,对于左表中的任何一个时间点,在右表中根据相对窗口范围确定实际窗口。如果左表的时间是分钟间隔(也就是60000毫秒),那么只...

回答于 2021-06-15 16:54

1 赞同

ODBC插件加载失败

请使用官网ODBC教程中的解决办法: cd /usr/lib64 ln -s libodbc.so.2.0.0.0 libodbc.so.1

回答于 2021-06-15 16:50

0 赞同

如何比较一个表的两行数据是否相同

可以用eqObj函数比较,如下面比较第一第二行: eqObj(t[0].values(),t[1].values(),3) 注意:取一个表t的某一行,可以使用t[i],其中i是从0开始的行号。t[i]返回一个字典,不能用于eqObj,所以使用t[i].values()获取这一行所有字段的值。

回答于 2021-06-15 16:49

0 赞同

用tableInsert写入字典报错

tableInsert使用字典作为输入的时候,字典的值类型必须是ANY。这样根据字段名称,可以快速获取一个tuple,插入到table。请把代码修改为: t=table(1 2 3 as x, 4 5 6 as y) d=dict(`x`y, (4, 7)) tableInsert(t, d)

回答于 2021-06-15 16:48

0 赞同

用python API订阅流数据时收不到数据

DolphinDB中数据订阅是push模式,也就是说数据有变化时,发布方会推数据到订阅端。所以订阅端需要有端口在监听。这个端口号,节点中通过配置项subPort设置。在python api中通过s.enableStreaming(port)中的参数port设置。在同个主机上,这些订阅端的监听端口号不能相同。上述问题的原因就是两个订阅端都设了8888.修改其中...

回答于 2021-06-15 16:47

0 赞同

如何获取字典一组键值的最后一个元素

试试下面的函数,其中x->d[x].tail() 是一个lambda函数。 d=dict(STRING,ANY) d[`600001.SH]=10 11 12 d[`600002.SH]=61 62 63 def mytest(d,codeList){ return each(x->d[x].tail(), codeList) } mytest(d,`600001.SH`600002.SH )

回答于 2021-06-15 16:45