logger
logger

性别: 注册于 2021-06-15

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

120 个回答

0 赞同

用C++ API读到的字段值中文显示乱码

DolphinDB的默认编码是UTF-8。可以在c++中用MultiByteToWideChar()函数映射一个字符串到一个宽字符(unicode)的字符串。代码如下: wchar_t *T2OLE(std::string raw){ const char * s = raw.c_str(); int unicodeLen = ::MultiByteToWideChar(CP_UTF8, 0, s, -1, NULL, 0); wchar_t *pUnicode; pUnic...

回答于 2021-06-15 19:37

0 赞同

怎么获取每个分区的记录数

可用下面方法获取每个分区的行数: login(`admin, `123456) tn8k = loadTable("dfs://singleValHour", "tn8k") ds = sqlDS(<select count(*) from tn8k>, true) t=mr(ds, mapFunc = x->table(x.count, [x.schema().chunkPath] as chunkPath), finalFunc=unionAll{, false}) 上面代码中用sqlDS切分数据源,在...

回答于 2021-06-15 19:35

0 赞同

按天备份的数据,怎么恢复到按月分区的数据库

可以先创建一张临时表,把数据恢复到临时表,然后再导入目标表。 migrate("/hdd/database/szl2data/20200601/","dfs://STOCK_SZL2_TAQ","SZL2_TAQ") db=database("dfs://STOCK_SZL2_TAQ") t=db.loadTable("SZL2_TAQ") db.createPartitionedTable(t, `TAQ, `date`symbol); temp=db.loadTable("TAQ") day=2020.06.02 for...

回答于 2021-06-15 19:30

0 赞同

The second argument for 'concat' must be a string or a char

参阅用户手册中concat的说明,第二个参数只能是字符串或字符。你在计算concat(concat(string(yearOfRegistration),"."),string(monthOfRegistration))这个时,第二个参数值是string(monthOfRegistration),这个是字符串向量了,所以报错。可试试下面代码: select string(yearOfRegistration) + "." + string(monthOfReg...

回答于 2021-06-15 19:29

1 赞同

查询条件限定了一个月,为什么还说maxPartitionNumPerQuery不够...

where条件不能这么写,要写成如下: select count(*) from dfsTab where date between 2018.12.01:2019.01.01 group by date DolphinDB在解决海量数据的存取时,并不提供行级的索引,而是将分区作为数据库的物理索引。系统在执行分布式查询时,首先根据WHERE条件确定需要的分区。大多数分布式查询只涉及分布式表的部分...

回答于 2021-06-15 19:27

0 赞同

把表中年和月两列整数拼成日期,为什么返回了空值

DolphinDB中DATE默认格式是yyyy.MM.dd,如2020.01.01,如不符合这个格式,需要用datetimeParse进行转换。代码改为如下: select temporalParse(string(yearOfRegistration) + "." + string(monthOfRegistration) + ".01","yyyy.M.dd") as newcat from tb 或者从MONTH类型转换为DATE: select date(1970.01M+(yearOfRegi...

回答于 2021-06-15 19:27

0 赞同

怎么删除维度表的数据

一个维度表就是一个分区。一般分区名为"__"+tableName. 比如我在已存在的分布式数据库dfs://STOCK_SHL2_TAQ中创建维度表dt,代码如下, db=database("dfs://STOCK_SHL2_TAQ") timestamp = [09:34:07,09:36:42,09:36:51,09:36:59,09:32:47,09:35:26,09:34:16,09:34:26,09:38:12] sym = `C`MS`MS`MS`IBM`IBM`C`C`C price=...

回答于 2021-06-15 19:26

0 赞同

多线程写入分布式表时提示filePath has been owned by transacti...

这是因为多个批处理作业并发往同个分区写入数据了。在DolphinDB database中,同一个分区不能被多个writer并发写入,当一个分区被某一个事务A锁定之后,另一个事务B试图再次去锁定这个分区时,系统立刻会抛出异常导致事务B失败回滚。详见https://github.com/dolphindb/...

回答于 2021-06-15 19:24

0 赞同

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

DolphinDB的DFS表数据读写是支持快照隔离的。一次写入的数据,读的时候要么全部读不到,要么全部读到。 而且写入批次间隔较大,因此可以去掉流表,直接写入DFS表,客户端在写入DFS表失败后,可重试写入。

回答于 2021-06-15 17:10

0 赞同

备份文件在的,但恢复时提示找不到文件

在DolphinDB中,使用backup函数对数据库分区进行备份,备份后,系统会在backupDir/dbName/tbName目录下生成元数据文件meta.bin和数据文件<chunkID>.bin。也就是说,实际目录会在备份目录backupDir下面生成2层子目录,分别是数据库名子目录和表名子目录。因此,目录D:/DolphinDB/20200601/STOCK_SHL2_TAQ/SHL2_TAQ/...

回答于 2021-06-15 17:09