原创,转载请注明出处
原文:
http://www.confusedcoders.com/bigdata/apache-drill/understanding-apache-drill-logical-plan
Apache Drill在内部会产生2个plan:一个是Logical Plan一个是Physical plan。
输入的query可以是SQL 2003的sql或者DrQL,或者是MongoQL,查询语句会首先被转成Logical plan,然后Drill会使用它的优化规则来对logical plan进行优化,最终产出physical plan,physical plan就是最后由execute engin执行的计划。
该过程流程如下:
Logical plan使用一种语言无关的方式描述了数据流。也就是说输入的查询不会依赖于查询使用的语言。Logical plan不关注优化。所以这一特性使得logical plan会比传统查询语句要冗杂。但是呢,这一特性的好处就是能允许利用一个自定义的高级查询语言(defining higher-level query language)实现很强的灵活性。Logical plan会被移交给优化器产生physical plan。physical plan是一个有data steam operator组成的DAG(有向无环图)。
Sample Logical Plan
博客的主人自己定义一个math函数(Contribute to Apache Drill: Implementing Math Functions.http://www.confusedcoders.com/bigdata/apache-drill/how-to-contribute-to-apache-drill-implementing-drill-math-functions
),并给出了该函数产生的logical plan的样例。
-----------------------------------------------------------------------------
{
head: {
type: "APACHE_DRILL_LOGICAL",
version: "1",
generator: {
type: "manual",
info: "na"
}
},
storage: {
console: {type:"console"},
fs1: {type:"fs", root:"file:///"},
cp: {type:"classpath"}
},
query: [
{
@id: 1,
op: "scan",
memo: "initial_scan",
ref: "employees",
storageengine: "cp",
selection: {
path: "/employees.json",
type: "JSON"
}
},
{
op : "project",
@id : 2,
input : 1,
projections : [
{
ref : "output.ceil",
expr : "ceil(1.7)"
},
{
ref : "output.floor",
expr : "floor(1.7)"
}
]
},
{
input: 2,
op: "store",
memo: "output sink",
storageengine: "console",
target: {pipe: "STD_OUT"}
}
]
}
-----------------------------------------------------------------------------
说明:
在该logical plan当中,有
Head
Storage
Query
三个部分的东东。
Head 部分的内容,是非常容易懂的。他是手动创建的。
Storage中定义了三种存储引擎。console, fs1 & cp,然后我们需要使用console来做作为我们查询中的引擎,我想该句的意思能够显示查询结果。
Query节点的内容就是会在dril中执行的查询的logical plan。该部分实际上由对data的操作的集合组成。
Scan:第一部分是从数据文件employees.json中读取文件,这是Drill中一种查询操作。
Project:project operator会将data进行转换,例子当中,project operator的输入是上面scan的输出,所以你能看到project的input:1,这个1就等于scan的操作ID。另外一个值得注意的是,是projection的feild部分
这又是一部分需要运用到数据上面的转换操作的集合。Ref 标签中,标识了projection操作的输出的名称,expr标签,表明了实际的运算规则。
Store:最后的一个组件是storage operation。他运用一开始定义的storage部分的console作为转储查询输出内容的存储引擎,也就是说直接显示查询结果。通过查看Store的字段input:2,则表示引用了store的输入为projection的输出。
- 大小: 15.6 KB
分享到:
相关推荐
"dril to dril (pbuh)-crx插件"是一款专为谷歌浏览器Chrome设计的扩展程序,其主要功能是将网页中出现的特定文本"DRIL"替换为"DRIL(pbuh)"。这款插件以英文为操作语言,旨在为用户提供一种自定义浏览器体验的方式...
标题"Cnc Drill for pcb"和描述"Cnc Dril pcb drill for automation"中提到的核心概念是CNC钻孔在PCB(印制电路板)制造中的应用。CNC,全称Computer Numerical Control,即计算机数字控制,是一种自动化加工技术,...
DRIL是一个简单的反向域工具
【drilipo:在没有第5个字形的情况下查找dril的帖子】 drilipo 是一个有趣的概念,它结合了Oulipo文学运动的限制创作原则与网络文化中的知名角色dril。Oulipo(Ouvroir de Littérature Potentielle,潜在文学工场...
- **Format**: 设置为 **2:5**,这是为了获得更高的精度。 3. **选择要转换的层及参数:** - 点击 **Layers** 菜单,在 **Plot layers** 栏选择 **Used on**。 - 在 **Mirror layers** 栏选择 **All off**。 4. *...
Disk Drill Enterprise 是一款专业级的文件恢复软件程序,旨在保护您的数据并恢复您的文件免于丢失。 Disk Drill 是一款适用于 Windows 的免费硬盘数据恢复应用程序(它支持 XP、Vista、7、8 、10和 11)。...
z-transform dril detail
2021年的数据表明,全球套管连接器市场的主要参与者包括NOV、Dril-Quip、Oil States International、Baker Hughes和OMS Oilfield Services等。这些公司在全球市场中的占有率总计约为53%,显示出高度的市场集中度。...
巴克莱资本对离岸石油服务公司进行了评级调整,将【OII(Oceaneering International, Inc.)】、【RIG(Transocean Ltd.)】和【DO(Diamond Offshore Drilling, Inc.)】的评级提升至“增持”,而将【DRQ(Dril-...
播放@dril和@reamldonaldtrump推文 tril:转换@dril和@reamldonaldtrump推文上的Chrome扩展名。 github(哦,是的,它是开源):https://github.com/nick-gottschlich/tril 我的推特(Plz跟随我需要吃):...
python main.py --imitation [AIRL|BC|DRIL|FAIRL|GAIL|GMMIL|PUGAIL|RED] 选项包括: 仅状态模仿学习: --state-only 吸收状态指示器 --absorbing R1梯度正则化 :-- --r1-reg-coeff 1 (默认值) 结果 PPO ...
https://twitter.com/dril/status/989005654517075968 此扩展程序统计您每天在Twitter上点击的次数。 支持语言:English
它的图表类型丰富,从简单的条形图或者饼图到高级的缩放&滚动图表或者专业的销售&市场图表,所有这些图表都支持交互式选项,如工具提示、dril-down、导出image/PDF/CSV和Javascript集成。 总的来说,Fusioncharts ...
分布式强化学习(DRIL)在模型中的应用,进一步增强了系统的自适应性和智能化水平。不同于传统的强化学习,分布式强化学习将问题拆解成多个子问题,每个子问题由一个或多个智能体独立处理。这样一来,系统的复杂度被...
### TOEFL分类词汇——地理类详解 #### altitude/5Altitju:d/ - **定义**: 海拔高度,指某一点相对于海平面的高度。 - **应用场景**: 在地理学、登山运动、航空等领域中用于描述地形特征或飞行高度。 #### ...
采用同轴送粉激光熔化沉积技术制备了纯钛构件, 并利用小孔法对样件扫描面不同部位的残余应力进行了测试, 研究了激光功率、扫描速度及送粉率对样件扫描面上残余应力分布的影响。研究结果表明:沉积件与基材结合区为...