kdb - 在 kdbb 中重放 tplog
问题描述
我试图在 kdb 中重播 tplog。数据大约1gb,但需要一整天,仍然无法完成回放。
其中一张表有两个键,两者都是string
. 我不确定这是否是它需要永远的原因。我也使用upsert
而不是insert
. 我应该更改什么以使其重播更快?
我认为是改变upd
功能。因此,当加载到内存时,这两列会变为symbol
第一列。
解决方案
正如评论中所讨论的,如果使用带有 upserting 的键控表的目的是让每个键有一个唯一的行,那么从无键控表开始并设置 upd 可能更有效(在日志重放方面)insert
并且当回放完成时,然后根据键对表进行分组,例如
`keyCol1`keyCol2 xkey select from replayedTable where i=(last;i) fby ([]keyCol1;keyCol2)
请注意,insert
它不能与键控表一起使用,因为当键已存在于表中时,它不允许插入。
键控表上的原件upsert
速度慢的原因可能是键的数量和在每个 upsert 上查找键列表(特别是字符串)的效率低下。这只是猜测
推荐阅读
- mongodb - 社区服务器的 Mongodb 下载选项不可用
- reactjs - 使用 TypeScript 在 React Native 上传递 refs:(属性)React.MutableRefObject
.current: null 对象可能是 'null'.ts(2531) - flutter - 使用部分选项卡视图和软键盘在颤动中编辑文本
- python - TF对象检测API检测模型再训练:“object_detection.protos.TrainConfig”没有名为“fine_tune_checkpoint_version”的字段
- terraform - 如何通过 terraform_remote_state 获取 VPC 子网 ID?
- reactjs - 附加数据时打字稿给我未定义
- python - 使用 selenium 和 phantomJS 和 python 在 iframe 中获取完全生成的 DOM 元素
- reactjs - 在反应中输出一个非常简单的菜单的最佳方法
- r - 尝试使用 rpy2 在 Python 中访问 R 类方法和字段
- visual-studio-code - Visual Studio Code 在 < 和 { 之后添加换行符