drill apache

在本周的白板演练中,MapR Technologies产品管理高级总监Neeraja Rentachintala概述了开源Apache Drill如何在大型数据集上实现交互式SQL查询的低延迟。 使用Drill,您可以使用熟悉的ANSI SQL BI工具,例如Tableau或MicroStrategy,还可以直接在大数据上进行探索。

对于其他材料:

  1. Apache Drill 1.6和MapR融合数据平台–新一代堆栈的出现,用于支持JSON的大数据分析
  2. 使用Apache Drill对混合模式日期进行SQL查询
  3. Apache Drill沙箱

这是未经编辑的转录:

您好,我叫Neeraja Rentachintala,我是MapR产品管理团队的成员。 今天,我将简短地讨论Apache Drill如何在大规模数据集上实现低延迟性能。

对于不熟悉它的人来说,Apache Drill是一个开源的,交互式SQL-on-Hadoop查询引擎,您可以使用它在大数据之上直接进行数据探索以及BI和即席查询,使用熟悉的ANSI SQL工具,例如Tableau和MicroStrategy。

在接下来的几分钟中,我将讨论使Drill提供这种交互式性能体验的一些核心体系结构元素和功能。

它的核心是Drill,它是一个分布式SQL查询引擎。 Drill中的核心守护程序称为“ Drillbiit”。 该服务将安装在Hadoop集群中的所有数据节点上。 不需要在所有数据节点上安装Drill。 您当然可以做一部分节点,但是在所有节点上安装使Drill能够在查询执行时实现数据局部性。

数据局部性是将处理下推到数据所驻留的节点的能力,而不是试图在查询执行时通过网络带来数据。

因此,让我们看一下查询执行流程。 它来自客户端的续集-可以是JDBC客户端,ODBC,CLI或REST端点。 查询进入,并且查询被Drillbit接受。 接受请求的Drillbit充当该特定请求的工头或协调者。 作为客户端应用程序,您可以直接提交至钻头,也可以与ZooKeeper仲裁进行对话,这又会将请求吸引到特定的Drillbit。

Drillbit收到请求后,它将通过查询,然后确定执行该特定查询的最佳方法是什么,或者执行查询的最佳方法是什么。

因此,除了在查询计划期间了解数据的位置之外,Drill还使我们能够进行各种基于工具和基于成本的优化。

确定最佳查询计划后,Drill会将查询计划分为多个片段,称为片段,即查询计划片段。 因此,Drillbit(协调员Drillbit)与ZooKeeper进行对话,确定集群中还有哪些其他Drillbit。 然后,它获取数据的位置。 通过组合这些信息,它可以确定哪些其他Drillbits可以处理此特定的查询计划片段列表。 然后,它将工作分配给群集中的其他钻头。 每个Drillbit都会对查询计划片段进行自己的处理。 他们将结果返回到原始Drillbit,然后Drillbit将结果返回给客户端。

因此,在执行过程中,每个Drillbit都将与基础存储系统进行交互。 因此,这可能是文件。 (正如我在这里所写的,这是DFS,代表分布式文件系统)。 它可以是HBase,可以是HIive,可以是MongoDB,可以是MapR-DB,也可以是Drill配置为可以使用的任何其他存储系统。

这里要意识到的重要一点是,这些钻头中的每一个都是相同的。 因此,这是一个完全横向扩展的MPP架构。 因此,客户端的请求可以转到任何Drillbit; 这就是Drill缩放的方式。 没有主从结构。 因此,今天,我可以在足以满足需求的一个节点上部署Drill。 我明天可以将其扩展到十个节点。 我可以将其增长到一百个节点,一千个节点。 根据要处理的数据量,取决于要支持的用户数量,取决于要实现的性能,这就是您要达到的目标。 您可以扩展Drill群集,可以缩小Drill群集,而不会遇到网络方面或处理方面的任何瓶颈。 因此,这是一个完全横向扩展的MPP查询引擎。 因此,这是Drill执行过程中的基础元素,可让Drill提供性能。

除了核心的分布式执行之外,还有许多其他执行和体系结构元素使Drill可以提供这种性能。 我将简要地详细描述每个特征。

这里的第一个方面是列式执行。 钻在存储和内存中都是柱状的。 那是什么意思呢? Drill针对Parquet等列格式进行了优化。 因此,如果我使用Drill查询Parquet数据文件,则它仅读取满足查询要求的特定列即可节省磁盘I / O。 不只是那样 数据读入内存后,Drill继续将数据保留为列格式。 因此,Drill的内部数据模型是内存中的,柱状的,分层的数据模型。 因此,好处在于使用列式执行,而Drill无需将数据具体化为新格式。 因此,它可以直接对列数据进行联接,聚合,排序和所有SQL操作,而无需更改结构。 因此,这不仅可以提高性能,还可以节省内存– Drill在查询执行时必须占用的内存空间。 因此,列执行是实现性能的非常基础的元素。

下一个方面与向量化处理紧密相关,这与列式执行密切相关。 在传统的MPB数据库系统中,这实际上是数据库系统中相当普遍的技术。 但这对于Hadoop而言是相当新的。 在给定的时间,矢量化处理的想法不是在单个记录中使用单个值,而是在单个值上进行操作,Drill允许CPU在所谓的“矢量”上进行操作。 这些也称为记录批。 向量基本上是表中一组记录的值的区域。 考虑对十亿条记录进行空检查。 矢量化处理是其技术前提,目的是确保您可以真正利用现代CPU设计和深度流水线化的CPU体系结构。 传统上,使用传统的RDMBS类型的系统不会使这些CPU管道保持繁忙,以实现性能和CPU效率。 这是因为核心复杂性,这才是Drill真正提高性能的地方。

你们中有些人可能听说过最近宣布的名为Apache Arrow的项目。 正如我提到的,Drill的内存中数据模型是列式分层数据模型。 现在,它实际上是作为一个单独的项目分解出来的,并作为一个名为Apache Arrow的新开源项目对社区做出了贡献。 该项目的目标是真正实现跨各种存储系统和处理框架(如Kudu,Impala,Spark等)的数据表示的标准化。因此,这是大数据分析的一种标准。

继续,这里的下一个方面是乐观/内存执行。 首先,要意识到的一件事是Drill不使用MapReduce,而Drill不使用Spark。 这是一个从头开始构建的引擎,旨在提高复杂数据集和分层数据集的性能。 “乐观”是什么意思? 这意味着Drill假定在短暂执行查询期间,出现故障(例如硬件故障或节点故障)的机会很少。 它尝试在内存中执行尽可能多的执行,而无需将任何内容写入磁盘以用于检查点和恢复目的。 这个想法是,从技术术语上使用的模型称为“管道执行”。 Drill以流水线方式而不是一次调度一个任务,而是一次调度所有任务。 这些任务正在执行,数据在各个管道之间移动,试图在内存中完成所有操作,并且仅在没有足够内存的情况下才将数据写入磁盘。 这再次是实现秒性能的非常非常核心的方面,而不是传统的基于批处理的范例所看到的分钟性能。

因此,列式执行,向量化处理,乐观的内存中执行–它们都对分布式查询执行功能起到了补充作用。 还有很多。 一个示例是运行时代码编译。 同样,与解释型查询执行相比,运行时代码生成非常高效。 Drill允许您实际上为每个查询和每个操作员生成非常非常高效的自定义代码。 再次这是执行查询的非常有效的方法。 您当然可以在文档中读到更多内容,但是我会说分布式执行以及列执行,向量化处理和内存执行的组合构成了Drill执行的基础。周围的表现。

为了获得性能,Drill围绕优化做了很多事情。 我们将在单独的视频中介绍。 请查看mapr.com。 感谢您的收看!

翻译自: https://www.javacodegeeks.com/2016/08/big-data-sql-overview-apache-drill-query-execution-capabilities-whiteboard-walkthrough.html

drill apache

drill apache_大数据SQL:Apache Drill查询执行功能概述–白板演练相关推荐

  1. 05.SQL Server大数据群集小试牛刀--HDFS查询

    05.SQL Server大数据群集小试牛刀--HDFS查询 SQL Server大数据群集查询HDFS ,利用之前创建好的大数据群集,使用官方提供的测试数据进行测试.脚本是官方的脚本,要知道干了什么 ...

  2. SuperSQL:跨数据源、跨DC、跨执行引擎的高性能大数据SQL中间件

    导语:SuperSQL是腾讯数据平台部自研的跨数据源.跨数据中心.跨执行引擎的统一大数据SQL分析平台/中间件,支持对接适配多类外部开源SQL执行引擎,如Spark.Hive等. 背景 SuperSQ ...

  3. mysql千万级大数据SQL查询优化

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引.2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引 ...

  4. .NET 3.5(11) - DLINQ(LINQ to SQL)之大数据量分页、延迟执行和日志记录

    步步为营VS 2008 + .NET 3.5(11) - DLINQ(LINQ to SQL)之大数据量分页.延迟执行和日志记录 作者:webabcd 介绍 以Northwind为示例数据库,DLIN ...

  5. 大数据江湖之即席查询与分析(下篇)--手把手教你搭建即席查询与分析Demo

    上篇小弟分享了几个"即席查询与分析"的典型案例,引起了不少共鸣,好多小伙伴迫不及待地追问我们:说好的"手把手教你搭建即席查询与分析Demo"啥时候能出?说到就得 ...

  6. 30个mysql千万级大数据SQL查询优化技巧详解

    点击上方关注 "终端研发部" 设为"星标",和你一起掌握更多数据库知识 文章来自:脚本之家 http://www.jb51.net/article/136701 ...

  7. 大数据SQL优化之数据倾斜解决案例全集

    1 什么是数据倾斜 数据倾斜即指在大数据计算任务中某个处理任务的进程(通常是一个JVM进程)被分配到的任务量过多,导致任务运行时间超长甚至最终失败,进而导致整个大任务超长时间运行或者失败.外部表现的话 ...

  8. 大数据江湖之即席查询与分析(上篇)--即席查询与分析的前世今生

    如今,大数据领域新技术层出不穷,可谓百家争鸣,甚是红火.不乏有些玩家动辄搞出个大数据平台,可谓包罗万象,号称无所不能.小弟则以为在大数据江湖中如能修炼好独门绝技,有能拿得出手的看家本领已然实属不易.小 ...

  9. 《MySQL DBA修炼之道》——1.3 查询执行过程概述

    本节书摘来自华章出版社<MySQL DBA修炼之道>一书中的第1章,第1.3节,作者:陈晓勇,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.3 查询执行过 ...

最新文章

  1. 解读自动驾驶的2020:从硬件角度看,无人车商业化落地难在哪?
  2. Java高并发编程:使用JDK5中同步技术的3个面试题
  3. firework常用快捷键
  4. 26.PhantomData幽灵数据.rs
  5. codeigniter中创建自己的类库
  6. MyBatis 特殊字符处理
  7. LVS+Redis部署手册
  8. VSCode之调试html
  9. H3C交换机做DHCP
  10. 网上赚钱的好方法,实战案例讲解,让你秒懂赚钱的秘密!
  11. 德国AgBB VoC有害物质测试
  12. 你见过凌晨四点的北京吗?
  13. 《剑指 offer : 专项突破版》 读后感
  14. 小盒马,大永辉,“大润发们”的未来怎么“大发”?
  15. 微信小程序 - 解决 rich-text 富文本解析图片无法自适应宽高问题(图片超出屏幕宽度且不受控)
  16. 树莓派(十一):流量传感器的使用
  17. linux压缩文件命令_24.gzip、unzip命令详解 - 钟桂耀
  18. 利用phantomjs动态生成图片
  19. VMware中安装Windows Server 2008 R2系统
  20. Chrome性能调优技巧

热门文章

  1. DBMS error [ORA-20005: Invalid (NULL) Lob locator (points).
  2. TCHAR和string的转换
  3. IBM SPSS CLEMENTINE 下载安装
  4. 打开.md格式文件的方式
  5. 如何使用ODB(How to use odb On windows)
  6. PHP指定日期(时间戳转换)
  7. centos之dd命令
  8. python --获取内网IP地址
  9. Unity3D的Json篇:LitJson.dll插件
  10. POJ 2395 Out of Hay 最小生成树 Kruskal