Apache Drill Architecture Introduction

Apache Drill是一个低延迟的分布式的查询引擎,适用于大规模的数据集、结构化和半结构化的数据。灵感来源于谷歌的Dremel(谷歌的交互式数据分析系统)。Drill可以搭建上千节点的集群,支持PB级的数据的交互式(例如BI分析)的查询。

Drill 也很适合大数据的即席查询,支持嵌套格式的数据查询,例如: JSON、Parquet,可以发现动态的模式。Drill不要求有一个中心化的元数据库。

Drill包含了一个分布式的执行环境,目的是为了构建大规模数据的处理。Drill的核心是"Drillbit"的服务,Drillbit负责从客户端接受请求、处理查询和返回结果给客户端。

Drillbit服务可以安装和运行在hadoop集群上的所有需求的节点上,形成一个分布式集群环境。Drillbit服务运行在集群的每个数据节点上, Drill可以在查询过程中最大限度的使用本地数据,而不需要通过网络移动节点之间的数据。Drill用户zookeeper保存集群成员之间关系和健康检测的信息。

尽管Drill运行在Hadoop集权环境,但不依赖于Hadoop, 可以运行在任何集群环境中。Drill唯一依赖的只有Zookeeper。

 

动态schema识别

Drill执行查询,不要求schema或者规范的数据类型。Drill开始批量的处理数据,在处理过程中发现schema。例如Parquet, JSON, AVRO和NoSQL数据库本身有数据的格式的数据,在查询期间会动态的利用他的数据格式。因为在Drill查询的过程中,schema会动态的改变,许多Drill的操作者面临schema发生变化时,都需要重新配置。

 

 

可伸缩的数据模型

Drill允许访问嵌入式的数据属性,就好像SQL的列,为了更好的操作他们,提供直观的扩展。从架构的角度来看,Drill提供了一个灵活的柱状的数据模型,可以展现复杂的,高度动态和不断变化的数据模型。在Drill中,关系型数据会被认为是复杂的或者简单的复杂/多结构的数据。

 

去中心化的元数据

Drill没有中心化元数据的需求,你不需要在元书库中创建和管理表和视图,也不需要依靠数据管理员去管理这样的功能。Drill元数据来源存于存储插件(相关的数据源),  存储插件提供了广泛的元数据范围,从完整的元数据(HIVE)、部分元数据(HBASE)或者去中心化的元数据(文件)。去中心化的元数据意味着Drill不是依赖于单个HIVE信息库。一旦你可以查询多个HIVE信息库,然后可以用这些信息组合数据,从HABSE 表或者一个人分布式文件。

You can query multiple Hive repositories at once and then combine the data with information from HBase tables or with a file in a distributed file system. You can also use SQL DDL statements to create metadata within Drill, which gets organized just like a traditional database. Drill metadata is accessible through the ANSI standard INFORMATION_SCHEMA database.

你可能感兴趣的:(drill)