教學目標

初步了解 SAS 平台中使用 Hive 進行資料管理的基本概念。

重點概念

首先若我們要在 SAS 平台中使用查詢語言存取 Hadoop 平台中的資料,則能夠使用 Hive。此時我們就需要了解 SQL Pass-through 工具能夠讓我們透過 HiveQL 執行資料的處理,其能夠透過 MapReduce 演算法平行處理查詢請求跨不同的資料節點,並且顯示格式化之後的查詢結果,同時儲存結果為 SAS 資料檔案,更進一步我們能夠建立 SAS 資料檢視表其中包括 Pass-through 查詢。

接著若我們要在 SAS 平台中使用 Hive 進行查詢,則需要透過安裝在 SAS 客戶端機器的 SAS/ACCESS to Hadoop 介面工具進行存取。此時將會需要透過 SAS/ACCESS to Hadoop 介面工具進行存取時,則必須要先確認以下四件事情,分別為:

  1. 我們必須確認 Hadoop 相關的 JAR 檔案必須被安裝在客戶端機器上,並且確認 SAS_HADOOP_JAR_PATH 環境變數路徑是否正確對應至 JAR 檔案的路徑。
  2. 我們必須確認在Hadoop 平台中 NameNode、DataNode、TaskTracker 和 JobTracker 處理程序是否正常啟動。
  3. 我們必須確認 Hive Metastore 服務和 Hive 服務在 Hadoop NameNode 中是可用狀態。
  4. 我們必須確認 HDFS 服務是可用,以利 SAS 建一和新增 Hive 資料表。

再來我們主要能夠傳送兩種類型的 SQL 指令至 Hive 中進行處理,分別為:

  1. SELECT 敘述:主要是透過 HiveQL 敘述產生結果輸出至 SAS 平台中。
  2. EXECUTE 敘述:主要是執行不會產生結果的 HiveQL 敘述,像是 GRANT、CREATE、DROP、…等敘述。

SELECT 敘述範例

1
2
3
4
5
6
7
8
proc sql;
connect to hadoop (<connection parameters>);
select * from connection to hadoop
(select name,age
from customer
where age >= 18);
disconnect from hadoop;
quit;

EXECUTE 敘述範例

1
2
3
4
5
proc sql;
connect to hadoop (<connection parameters>);
execute (drop table customer) by hadoop;
disconnect from hadoop;
quit;

其中當我們需要透過 Hive 存取資料之前,我們必須先建立 Hive 連線,主要是使用「CONNECT TO HADOOP <AS 別名> (選項) 」的敘述式,其相關選項,請參考下表。

選項 設定
USER Hive 使用者名稱。
PW Hive 使用者密碼。
SERVER Hive 伺服器機器名稱或 IP 位置。
SUBPROTOCOL 連線至 Hive 的協定。
SCHEMA Hive 資料表存取綱要。
PORT Hive 伺服器的連結埠。

所謂連線至 Hive 協定主要有兩種,分別為 Hive1 和 Hive2,Hive1 主要是被設計使用於單一使用者的協定,Hive2 主要是被設計使用於多個使用者的協定,並且支援 Kerberos 安全協定。

最後我們主要是使用「DISCONNECT FORM HADOOP | <別名> 」的敘述式關閉 Hive 連線,並且建議再透過 QUIT 敘述式終止 HiveQL 處理程序。請注意若我們使用 PROC SQL 敘述式則最佳實務則需要搭配 QUIT 敘述式終止步驟。

相關資源