首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在逻辑计划中星号(*)的含义是什么?

在逻辑计划中星号(*)的含义是什么?
EN

Stack Overflow用户
提问于 2020-12-06 21:57:34
回答 1查看 310关注 0票数 1

在逻辑计划中行首的星号符号的含义是什么?

见下面的例子:

代码语言:javascript
复制
| == Physical Plan == 
 *(2) HashAggregate(keys=[k#33], functions=[sum(cast(v#34 as bigint))]) 
      +- Exchange hashpartitioning(k#33, 200), true, [id=#59] 
         +- *(1) HashAggregate(keys=[k#33], functions=[partial_sum(cast(v#34 as bigint))]) 
                 +- *(1) LocalTableScan [k#33, v#34] |

我记得它与正在优化的操作有关,但是在文档中找不到有用的东西,除了“优化”之外,也不知道更多的细节。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-07 09:15:27

编辑:

最后找到了一个在线源,它记录了逻辑计划中星星的含义:

“物理计划中受整个阶段代码生成优化的步骤,以星号作为前缀,后面跟着代码生成id,例如:‘*(1)LocalTableScan’。”

继续我的研究离线,并发现了一些有价值的提示火花开发商培训材料,从霍顿工厂和书“学习火花,第二版”。

带有星号(*)的操作使用全阶段代码Gen.

而整个阶段的代码生成被描述为

物理查询优化阶段,将整个查询折叠成一个函数,消除虚拟函数调用,并对中间数据使用CPU寄存器。

在数据库文章Apache作为编译器:以每秒10亿行的速度在笔记本上连接中对整个阶段代码Gen作了全面的介绍,其中说:

“目标是利用整个阶段的代码生成,以便引擎能够实现手写代码的性能,同时提供通用引擎的功能。与其在运行时依赖操作符来处理数据,这些操作符一起在运行时生成代码,并在可能的情况下将查询的每个片段折叠成一个函数,然后执行生成的代码。”

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

https://stackoverflow.com/questions/65173526

复制
相关文章

相似问题

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