`
扬州老鬼
  • 浏览: 306311 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Apach Dril的Logical Plan的详解2

 
阅读更多
原创,转载请注明出处

原文:
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插件

    "dril to dril (pbuh)-crx插件"是一款专为谷歌浏览器Chrome设计的扩展程序,其主要功能是将网页中出现的特定文本"DRIL"替换为"DRIL(pbuh)"。这款插件以英文为操作语言,旨在为用户提供一种自定义浏览器体验的方式...

    Cnc Drill for pcb

    标题"Cnc Drill for pcb"和描述"Cnc Dril pcb drill for automation"中提到的核心概念是CNC钻孔在PCB(印制电路板)制造中的应用。CNC,全称Computer Numerical Control,即计算机数字控制,是一种自动化加工技术,...

    DRIL ( Domain Reverse IP Lookup)-开源

    DRIL是一个简单的反向域工具

    drilipo:在没有第5个字形的情况下查找dril的帖子

    【drilipo:在没有第5个字形的情况下查找dril的帖子】 drilipo 是一个有趣的概念,它结合了Oulipo文学运动的限制创作原则与网络文化中的知名角色dril。Oulipo(Ouvroir de Littérature Potentielle,潜在文学工场...

    Altium输出gerber&Drill详细方法和步骤

    - **Format**: 设置为 **2:5**,这是为了获得更高的精度。 3. **选择要转换的层及参数:** - 点击 **Layers** 菜单,在 **Plot layers** 栏选择 **Used on**。 - 在 **Mirror layers** 栏选择 **All off**。 4. *...

    硬盘数据恢复神器Disk Drill Enterprise

    Disk Drill Enterprise 是一款专业级的文件恢复软件程序,旨在保护您的数据并恢复您的文件免于丢失。 Disk Drill 是一款适用于 Windows 的免费硬盘数据恢复应用程序(它支持 XP、Vista、7、8 、10和 11)。...

    zdrill-v210.zip_z transform_z-transform_z-transform z_zip

    z-transform dril detail

    套管连接器全球市场总体规模,行业分析.docx

    2021年的数据表明,全球套管连接器市场的主要参与者包括NOV、Dril-Quip、Oil States International、Baker Hughes和OMS Oilfield Services等。这些公司在全球市场中的占有率总计约为53%,显示出高度的市场集中度。...

    巴克莱-美股-石油服务与设备行业-离岸更新:将OII、RIG、DO调整为增持,DRQ调整为持有-220-45页.pdf

    巴克莱资本对离岸石油服务公司进行了评级调整,将【OII(Oceaneering International, Inc.)】、【RIG(Transocean Ltd.)】和【DO(Diamond Offshore Drilling, Inc.)】的评级提升至“增持”,而将【DRQ(Dril-...

    Tril-crx插件

    播放@dril和@reamldonaldtrump推文 tril:转换@dril和@reamldonaldtrump推文上的Chrome扩展名。 github(哦,是的,它是开源):https://github.com/nick-gottschlich/tril 我的推特(Plz跟随我需要吃):...

    imitation-learning:模仿学习算法

    python main.py --imitation [AIRL|BC|DRIL|FAIRL|GAIL|GMMIL|PUGAIL|RED] 选项包括: 仅状态模仿学习: --state-only 吸收状态指示器 --absorbing R1梯度正则化 :-- --r1-reg-coeff 1 (默认值) 结果 PPO ...

    Ten click challenge-crx插件

    https://twitter.com/dril/status/989005654517075968 此扩展程序统计您每天在Twitter上点击的次数。 支持语言:English

    Fusioncharts XT V3.2.2中文版教程

    它的图表类型丰富,从简单的条形图或者饼图到高级的缩放&滚动图表或者专业的销售&市场图表,所有这些图表都支持交互式选项,如工具提示、dril-down、导出image/PDF/CSV和Javascript集成。 总的来说,Fusioncharts ...

    基于分布式强化学习的高速公路控制模型.pdf

    分布式强化学习(DRIL)在模型中的应用,进一步增强了系统的自适应性和智能化水平。不同于传统的强化学习,分布式强化学习将问题拆解成多个子问题,每个子问题由一个或多个智能体独立处理。这样一来,系统的复杂度被...

    TOEFLE分类词汇-地理类

    ### TOEFL分类词汇——地理类详解 #### altitude/5Altitju:d/ - **定义**: 海拔高度,指某一点相对于海平面的高度。 - **应用场景**: 在地理学、登山运动、航空等领域中用于描述地形特征或飞行高度。 #### ...

    激光工艺参数对激光熔化沉积纯钛样品残余应力的影响

    采用同轴送粉激光熔化沉积技术制备了纯钛构件, 并利用小孔法对样件扫描面不同部位的残余应力进行了测试, 研究了激光功率、扫描速度及送粉率对样件扫描面上残余应力分布的影响。研究结果表明:沉积件与基材结合区为...

Global site tag (gtag.js) - Google Analytics