Drill官网文档翻译一 基本架构

(翻译自apache drill 官网)

架构总览

Apache drill是在大规模数据集场景下,可以低延迟地进行结构和半结构化/嵌套数据结构查询的一个分布式查询引擎。受到谷歌公司的Dremel的启发,Drill被设计出来以支持几千个节点和PB级别的数据规模下,支持交互响应级别的商务智能分析和查询。
Drill也适用到在大规模数据集场景下进行简单而迅速的查询.Drill能够查询像是JSON或是Parquet这种嵌套的数据,也能动态地发现schema.Drill并不需要一个中央的元数据库.

顶层架构(High-Level Architecture)

Drill包含一个专门为了处理大规模数据的分布式执行环境。Apache Drill的核心是一个叫做“钻头”(drillbit)的服务,它负责从客户端接受请求,处理该查询,并将结果返回给客户端。一个drillbit服务可以在Hadoop集群中所有有需要的节点上安装和运行,形成一个分布式的集群环境。当drillbit运行在集群中的数据节点上时,drillbit可以查询执行过程中最大限度地使数据本地调用,而无需在网络上或是节点之间移动数据。Drill使用ZooKeeper来记录集群成员和健康检查信息。虽然钻工作在Hadoop集群环境中,Drill并不紧紧地与hadoop绑死,而是可以运行于任何分布式集群。Drill唯一的依赖是zookeeper.

请查阅Drill Query Execution

Drill 客户端

你可以通过下面的客户端来访问drill:

  1. Drill shell
  2. Drill Web Console
  3. ODBC/JDBC
  4. C++ API

动态Schema发现

Drill并不需要一份数据schema或是类型定义就可以开始执行查询。Drill是分批次地开妈数据处理的。自描述的数据格式,像Parquet,JSON,AVRO,还有一些Nosql 数据库,格式描述是数据的一部分,Drill在处理的过程中会根据需求加以利用。

灵活的数据模型

Drill允许访问嵌套的数据属性,就好像它们是SQL列一样,并提供了直观的扩展以轻松地操作它们。从架构的角度来看,Drill提供了一个复杂的级联式的列式数据模型,用来描述复杂的,高度动态且不断变化的数据模型。在Drill里,关系数据被视为复合/多结构数据的一个简化处理。

去中央元数据设计

Drill不要求一个集中的元数据。你并不需要创建一个元数据库来存储表和视图,或依赖于一个有这种功能的元数据管理组件。Drill的元数据来源于那些跟源数据打交道的存储插件。存储插件能提供全部元数据中的一系列子区间(例如Hive),或是元数据的一部分(如HBase),或者就没有元数据(针对文件类)。去中央元数据意味着Drill不依赖于一个单一的Hive库,您可以一次查询多个Hive库,然后把结果与HBase的表或分布式文件系统中的文件信息组装起来。您也可以在Drill中使用SQL DDL语句来创建元数据,这些元数据就像传统的关系数据库中管理的一样。Drill的元数据也可以通过ANSI标准的INFORMATION_SCHEMA数据库来访问。

可扩展的设计

Drill在所有层都提供了一个可扩展的架构,包括存储插件,查询,查询优化/执行器以及客户端API层。您可以定制任意层来满足您的机构的特定需求,也可以把这一层延伸到更广泛的用途。Drill使用类路径扫描来查找和加载插件,并用最少的配置来添加额外的存储插件,功能和操作支持。

时间: 2024-09-30 19:53:05

Drill官网文档翻译一 基本架构的相关文章

Drill官网文档翻译四 Drill的性能

(翻译自apache drill 官网.) Drill是从地基开始就奔向高性能和大数据集去设计的,下面列出来的是Drill能够做到高性能的核心要点. 分布式的引擎 Drill提供了一个强大的分布式引擎来处理查询.用户可以从集群的任何一个节点是提交查询.你可以添加新的节点到集群中,以为了支持更多用户的更多数据,或是获得更好的性能. 列式执行 通过使用一种纯内存的分层的,列式的数据模型,Drill同时为列式存储,列式执行都做了优化.当数据是存储在列式存储的文件上时(比如像Parquet)Drill会

Drill官网文档翻译三:Drill的核心模块

(翻译自Drill官网) 核心模块 下图描述了一个drillbit里的各个组件 下面列出drillbit里的关键组件: RPC endpoint Drill开发了一种基于Probobuf的损耗非常低的RPC通信协议来跟客户端打交道.另外,客户端程序也可以使用C++或是JAVA api层来跟Drill交互.客户端可以直接指定跟哪些Drillbit节点打交道,也可以在提交查询前通过zookeeper服务来获取一定数量的drillbit节点信息. 我们推荐客户端总是通过zookeeper,以隔离集群管

Drill官网文档翻译二:Drill查询的执行

(翻译自Drill官网) 当您提交Drill查询的时候,客户端或应用程序会把查询以SQL语句的形式发送到Drill集群的一个Drillbit.Drillbit是在每个在线的Drill节点上运行的进程,它负责协调,规划和执行查询,并按照最大限度地实现数据本地化的原则在集群中分发查询. 下图描述了客户端,应用和drillbit之前的通信: 从客户端或应用端接收查询的那个drillbit会成为这个查询是的"接待员",会负责驱动整个查询.这个"接待员"drillbit进程中

Drill官网文档翻译五:连接到数据源

存储插件是Drill中,连接到数据源的模块.一个存储插件通常会优化Drill查询的执行,提供数据的定位,命名空间下的配置和读数据要用到的格式.Drill已经内置了一些存储插件,你只需要根据你的环境配置一下就可以使用了.借助存储插件,你可以连接到各种数据源,像数据库,本地或是分布式的文件,或是Hive数据库. 你可以修改一个存储插件的默认配置X,并给一个新的唯一的名字"Y".这个新的文档就会把Y当成一个完全不同的插件,虽然它本身只是原有插件重新配置了一下.当你执行一个drill查询的时候

Drill官网文档翻译六:存储插件的注册

我们可以通过存储插件连接到本地文件系统,Hive,HBase,或是其他的数据源.在Drill的web界面的存储插件配置tab,你可以查看修改这些插件的配置.如果不支持HTTPS(默认就没有),你可以访问HTTP://{IP}:8047/storage 来查看和配置存储插件.可以用IP,也可以用hostname.如果开启了https的支持,你可以通过https://{IP}:8047/storage来访问. Drill 默认开启了cp,dfs,hbase,hive和mongodb的插件支持. cp

【原创】RabbitMQ官网文档翻译 -- Highly Available Queues

      为了方便工作中使用,对 RabbitMQ 的[高可用]相关文档进行了翻译,鉴于自己水平有限,翻译中难免有纰漏产生,如果疑问,欢迎指出探讨.此文以中英对照方式呈现. 官方原文:http://www.rabbitmq.com/ha.html ============== 我是分割线 =============== Highly Available Queues高可用 queue If your RabbitMQ broker consists of a single node, then

【原创】RabbitMQ官网文档翻译 -- Clustering Guide

      为了方便工作中使用,自己花费了周末空闲的时间对 RabbitMQ 的集群配置相关文档进行了翻译,鉴于自己水平有限,翻译中难免有纰漏产生,如果疑问,欢迎指出探讨.此文以中英对照方式呈现. 官方原文:http://www.rabbitmq.com/clustering.html ============== 我是分割线 ================ Clustering Guide集群配置 A RabbitMQ broker is a logical grouping of one

《英雄联盟》新官网改版总结

  01.<英雄联盟>项目背景 <英雄联盟>是目前全球最火的大型moba类网游,从2010年中文官方网站上线至今已有4年左右,在游戏不同阶段,<英雄联盟>官网也有相对应阶段的改版.今年作为已经公测二周年的成熟产品,结合<英雄联盟>目前的市场时期和定位,我们需要对<英雄联盟>进行一次较为针对的改版. 02.<英雄联盟>新官网设计风格走向 根据<英雄联盟>的游戏画面和游戏原画等素材来看,其定位都属于黑暗.魔幻.重质感类的游戏,

爸爸去哪儿官网设计过程

  以下是我以自身设计的"爸爸去哪儿官网"为例来讲述个人在设计一个项目的思路和操作过程.希望可以帮大家解答经常性问的:没想法时要怎么做设计,怎么样思考项目的这一疑问.(PS:这不是为了写东西后期编的,而是在设计前和设计过程中本人的思考过程,也许设计稿挺一般,但个人认为这种设计思考方式不错,我一个都是这样做项目的.) 项目背景: <爸爸去哪儿>由<我是歌手>金牌制作人洪涛监制,<变形记>团队打造;10月11日起,每周五晚登陆湖南卫视22点档;这档名人代