首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TorQ:如何更新填充了.loader.loadallfiles的磁盘数据库?

TorQ:如何更新填充了.loader.loadallfiles的磁盘数据库?
EN

Stack Overflow用户
提问于 2018-01-18 18:49:00
回答 1查看 158关注 0票数 0

我使用TorQ的.loader.loadallfiles以累积的方式从大型CSV文件填充磁盘数据库,它工作得很好。然而,我现在还需要附加来自流来源的数据,我不确定最好的方法是什么。

我知道如何更新或附加数据到内存中的数据库。但是,我不知道有什么应用编程接口可以一致地将增量更新带到以前填充了.loader.loadallfiles的磁盘数据库

我叫.loader.loadallfiles,例如。

代码语言:javascript
复制
rawdatadir:hsym `$("" sv (getenv[`KDBRAWDATA]; "fwdcurve"));
.loader.loadallfiles[`headers`types`separator`tablename`dbdir`partitioncol`partitiontype!(`date`ccypair`ftype;"ZSS";enlist ",";`fwdcurve;target;`date;`month); rawdatadir];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-18 20:10:04

正如Jonathon评论的那样,最好的想法是维护一个RDB来存储来自流媒体源的数据。当Kdb将数据保存到磁盘时,它会一次保存整个列,所以给定1000条记录和5列,最好让它保存5个列表1000个条目,而不是要求它保存5列,每个列保存1个条目1000次。

为了说明这需要多少时间,假设我在磁盘列表x和y上有两个元素。

代码语言:javascript
复制
q)\t `:x upsert 10000#1
0

一次做一个要慢得多。

代码语言:javascript
复制
q)\t:10000 `:y upsert 1
126

使用完整的TorQ框架可能值得研究一下。它是专门为这种情况设计的。它具有RDB和HDB功能,可在此处http://aquaqanalytics.github.io/TorQ/找到

如果您希望像您所说的那样追加数据,那么目前还没有任何API可以做到这一点。您可以做的是修改RDB或WDB以写入以附加到数据库。我认为,在调用.loader.finish之前使用.loader.writedatapartition会很有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48319482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档