王俊永

王俊永 查看完整档案

填写现居城市  |  填写毕业院校  |  填写所在公司/组织填写个人主网站
编辑
_ | |__ _ _ __ _ | '_ \| | | |/ _` | | |_) | |_| | (_| | |_.__/ \__,_|\__, | |___/ 该用户太懒什么也没留下

个人动态

王俊永 赞了问题 · 7月24日

多客户端写入,要求每次写入的数据要么都可见,要么都不可见

我们有多个客户端程序想往DolphinDB database中写入分钟级数据,因为DFS不支持多个客户端并行写入同一个分区,因此现在规避的方法是采用了多个客户端都写入同一张流数据表,DFS表来订阅这张流表的数据,数据分析计算就从DFS表中取数据。

我们有个读数据的程序,希望要么读不到数据,要么能读到一次写入的所有数据,不能取到中间状态。假设A、B、C三个客户端程序都在写入数据,我们希望每次都能读到A的所有数据,要么啥也读不到。对程序B和C也一样。请问有其他比较好的解决方案吗?

关注 3 回答 1

王俊永 提出了问题 · 7月24日

c++ api程序编译不过,报错undefined reference to...

我的编译环境如下:

database@wale-virtual-machine:$ cat /etc/issue
Ubuntu 16.04.4 LTS \n \l

database@wale-virtual-machine:$ gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

我的makefile如下:

CFLAGS = -g -Wall -std=c++11 -fPIC -DLINUX -DLOGGING_LEVEL_2 -O2 
INCLUDES= -I../../include
OBJS=testWriting.o

all: $(OBJS)
    g++ -L../../bin/linux_x64 -L../../bin/mingw_x64 -L../../bin/vx2017_x64 $(OBJS) $(CFLAGS)  -lDolphinDBAPI  -L../../bin  -Wl,-rpath,.:../../bin/linux_x64/ -o testWriting 
testWriting.o: testWriting.cpp
    g++ $(CFLAGS) $(INCLUDES) -c testWriting.cpp -o testWriting.o
clean:
    rm *.o testWriting  core -rf

编译时,错误信息如下:

database@wale-virtual-machine:~/api-cplusplus/example/testWriting$ make
g++ -g -Wall -std=c++11 -fPIC -DLINUX -DLOGGING_LEVEL_2 -DLINUX  -O0  -I../../include -c testWriting.cpp -o testWriting.o
g++ -D_GLIBCXX_USE_CXX11_ABI=0 -L./  testWriting.o -g -Wall -std=c++11 -fPIC -DLINUX -DLOGGING_LEVEL_2 -DLINUX  -O0   -lDolphinDBAPI   -L./  -Wl,-rpath,. -o testWriting 
testWriting.o: In function `createDemoTable(long, long, int)':
/home/database/api-cplusplus/example/testWriting/testWriting.cpp:43: undefined reference to `dolphindb::Util::createTable(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<dolphindb::DATA_TYPE, std::allocator<dolphindb::DATA_TYPE> > const&, int, int)'
testWriting.o: In function `createDemoTable1(long, long, int)':
/home/database/api-cplusplus/example/testWriting/testWriting.cpp:277: undefined reference to `dolphindb::DBConnection::connect(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)'
/home/database/api-cplusplus/example/testWriting/testWriting.cpp:293: undefined reference to `dolphindb::DBConnection::run(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<dolphindb::SmartPointer<dolphindb::Constant>, std::allocator<dolphindb::SmartPointer<dolphindb::Constant> > >&, int, int)'
collect2: error: ld returned 1 exit status
Makefile:6: recipe for target 'all' failed
make: *** [all] Error 1

请问可能是什么原因?先谢了!

关注 3 回答 2

王俊永 提出了问题 · 7月23日

有没有办法将一个内存表的所有行重组一下

假设我在DolphinDB database中有下面这张表:

t=table(1..3 as id,4..6 as v1,7..9 as v2)

有没有办法将这个表的所有行randomnize一下?

关注 2 回答 1

王俊永 赞了回答 · 7月23日

解决有个程序往DolphinDB里写数据,另一个程序会去读,它会读到一个中间状态吗?

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

关注 2 回答 1

王俊永 赞了问题 · 7月23日

解决在python中怎么把当前时间写入DolphinDB流表

我在DolphinDB databse中创建了如下流数据表:

    st=streamTable(
        array(LONG,0) as id,
        array(TIMESTAMP,0) as ts,
        array(DATETIME,0) as dt,
        array(DOUBLE,0) as value 
    )
    share(st,"demoSt")

我想在python中把当前系统时间写入流表,代码如下:

import dolphindb as ddb
import numpy as np
import pandas as pd

s = ddb.session()
c=s.connect("192.168.1.125", 8848, "admin", "123456")
s.run("tableInsert{demoSt}", [1,np.datetime64('now',"ms"),np.datetime64('now'),0.01 ])

运行后,我查询得到的数据如下图所示:
image.png

这里有2个问题,一个问题是np.datetime64('now',"ms")得到的毫秒数不对,它总是000;另一个问题是np.datetime64('now')得到的是utc时间,不是localtime。请问要得到正确的时间应该怎么实现?

关注 2 回答 1

王俊永 赞了问题 · 7月23日

流数据订阅端的handler中怎么输出日志信息

我从DolphinDB database的流数据表订阅数据,请问在编写subscribeTable的handler(订阅函数)时,能不能print一些中间结果到屏幕上看看结果?

关注 2 回答 1

王俊永 赞了问题 · 7月23日

解决DolphinDB如何只获取sql语句的执行时间,而不需要返回执行结果

比如一条sql语句,select * from t;
我只想得到这个sql语句的执行时间,而不需要得到这个sql语句执行后返回的结果集。

关注 1 回答 1

王俊永 赞了问题 · 7月23日

DolphinDB升级怎么操作比较简捷

我部署了1.10.8版本单节点DolphinDB database,我看到现在官网上有1.10.11版本了,我直接升级不影响现有数据吧?怎样操作比较简捷?

关注 2 回答 1

王俊永 赞了问题 · 7月23日

#include脚本文件报异常Can't find the script file

我在DolphinDB database GUI中执行下列语句:

#include "/home/zhaohl/tmp/inc_test"

报异常:Can't find the script file [)D:/DolphinDB/test/scripts//home/zhaohl/tmp/inc_test]
但这个文件在服务器上是存在的,如下图所示:

image.png

D:/dolphindb/test/scripts不知是哪里来的?请问怎么解决?

关注 2 回答 1

王俊永 赞了问题 · 7月23日

没有任务运行,DolphinDB为什么没有释放内存

昨晚起到今天早上DolphinDB一直闲置在那儿,但是我刚发现DolphinDB内存占用达到了30%(如下图所示,我机器是8GB的内存)。请问没有任务运行的话,DolphinDB为什么没有释放内存?

image.png
我执行pnodeRun(clearAllCache)后,内存占用率下降到17%,如下图所示:
image.png
在web上查看内存占用情况,每个节点占用约680MB。
image.png

请问17%这个占用率算正常吗?clearAllCache后释放的这些内存,证明程序并没有在使用,为什么DolphinDB没有自动释放呢?

关注 2 回答 1

认证与成就

  • 获得 124 次点赞
  • 获得 7 枚徽章 获得 0 枚金徽章, 获得 1 枚银徽章, 获得 6 枚铜徽章

擅长技能
编辑

(゚∀゚ )
暂时没有

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 4月5日
个人主页被 228 人浏览