Leo Yeh's Blog

SAS 資料管理 (3)

教學目標

初步了解 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 (選項) 」的敘述式,其相關選項,請參考下表。

選項 設定
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 敘述式終止步驟。

相關資源

⬅️ Go back