首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并行处理( kdb )

并行处理( kdb )
EN

Stack Overflow用户
提问于 2019-06-24 07:48:32
回答 3查看 629关注 0票数 4

当我们使用-s时,主线程将一些工作委托给从线程。

我使用3个从线程运行下面的代码:q -s 3

代码语言:javascript
复制
select from t where date within 2019.01.18 2019.01.20

试图了解Q如何在内部使用线程进行上述查询。

kdb内部是否使用每个子线程来获取日期的数据,然后主线程在结束时合并数据?

类似于:

代码语言:javascript
复制
main thread looking for slave threads and assigning work
    slave 1:  t1: select from t where date within 2019.01.18
    slave 2:  t2: select from t where date within 2019.01.19
    slave 3:  t3: select from t where date within 2019.01.20
    main thread: t1,t2,t3

每个从线程做什么工作,主线程做什么工作?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-06-24 09:10:37

如果您的表是分段的,并且使用多个线程,那么分区将被并行处理。更多细节:Kdb+/#1442-segmentation-vs-partitionshttps://code.kx.com/v2/kb/partition/

票数 1
EN

Stack Overflow用户

发布于 2019-06-24 09:57:21

使用从线程调用映射和约简框架,其中每个线程执行分配的任务,并返回其结果的副本,以便主线程进行聚合。

在您的特定情况下,如果您要查询的表是分区的,那么查询将有效地并行化。由于它将引入所有列,所以查询将是I/O绑定的,这意味着您不会看到太多/任何加速。

票数 3
EN

Stack Overflow用户

发布于 2019-06-24 20:27:33

尝试以下{select从t where date=x}桃(日期在2019.01.18 2019.01.20内)

它应该更快

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

https://stackoverflow.com/questions/56732019

复制
相关文章

相似问题

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