• 沒有找到結果。

第二章 文獻探討

第三節  雲端運算

四、  Apache Hive

 Row Key:是用來檢索記錄的主鍵(primary key)。HBase 存放資料的順序是依 照row key 的排序結果,且因 HBase 的掃描(scan)支持局部 Key 掃描(partial key scans),掃描時可以設定要讀出row key 中的哪些資料,故 row key 的設 計會直接影響到資料存取的效率,所以設計row key 時可將經常同時存取的 資料給予ㄧ連續的row key,以提升資料讀取的速度。

 Timestamp(時間戳):在 HBase 之中,每一筆資料都有一個時間戳記 ,可以看 作是資料的版本號碼(version number),所以 HBase 主要是利用 Timestamp 來保存多個版本的資料。

 Column Family:HBase Table 在水平方向有一個或者多個 Column Family,

在創建資料表時就必須決定Column Family 的數量,ㄧ般來說建議不要超過 3 個 Column Family,否則會使得存取效能低落。

 Column Qualifier:每個 Column Family 底下會有ㄧ個或多個 Column Qualifier,

這些Column Qualifier 可以視需求隨時新增。

四、 Apache Hive

Hive 起源於 FaceBook,是一種建立在 Hadoop 之上的數據倉庫架構,建立 在 Hadoop 叢集上的最頂層,最初是寫給使用 SQL 語法的分析師們,用來查詢

Hive 是建立在 Hadoop 之上,是一套可减少 MapReduce jobs 編寫工作的批 次處理系统。Hive 的基本特點是它可將用戶端的操作(查詢或者 ETL)轉變成 MapReduce 任務,利用 MapReduce 框架執行這些任務以對 HDFS 上的巨量資 料進行處理。Hive 定義了一種簡單的類 SQL 查詢語言 HiveQL,讓不熟悉 MapReduce 程式語言開發的工作者,例如 DB,也可藉由 Hive 來開發離線資料 處理與分析工作,且因Hive query 本身就是以 MapReduce 架構編寫而成,故可

 Driver:用來分析處理 HiveQL 語句,並把 HiveQL 轉化成查詢計畫(plan),

藉此來操作中繼資料和HDFS。 (embedded mode)來連線到 Hive 伺服器。

 ODBC Driver:允許支援 ODBC 通訊協定的應用程式連接到 Hive。

3. Hive Storage and Compute

 Hadoop cluster:Hive 建構在 Hadoop 之上,可用來查詢 HDFS 上的資料。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

25

 Metastore:是 Hive 屬性資料的中央倉庫。它可分成兩個部分:一個服務 以及後端的資料儲存。Hive 會把中繼資料儲存在資料庫中(metastore),

目前可支持mysql 和預設的 derby 資料庫。

圖 2-9 Hive 架構圖

雖然Hive 與傳統資料庫有許多相似之處,但是底層的 HDFS 與 MapReduce 等架構上的差異會直接影響 Hive 支援的功能。舉例來說,在傳統資料庫中,資 料表schema 的設計通常是「schema on write」,指的是資料在寫入時就會先行檢 查是否符合 schema,若不符合則拒絕寫入資料。Hive 並不會在資料寫入時進行 驗證,而是在資料查詢時才作驗證,這種設計稱之為「schema on read」。這兩種 方式各有優缺,schema on read 可以很快速的執行資料寫入,schema on write 則 會使得資料查詢較有效率,故在實際情況下會針對欲儲存資料之特性來決定使用 哪種設計模式。

Hive 的 SQL 語法稱為 HiveQL,其中有許多是為了滿足使用者需求而加入 的功能,因底層架構的關係,有許多傳統 SQL 的特性在 HiveQL 是看不到的,

其差異如圖 2- 10 一般 SQL 與 HiveSQL 比較圖所示。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

26

圖 2- 10 一般 SQL 與 HiveSQL 比較圖

相關文件