天天看點

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.