使用 SQL 查詢轉換資料 - AWS Glue

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 SQL 查詢轉換資料

您可以使用 SQL 轉換來以 SQL 查詢的形式編寫自己的轉換。

SQL 轉換節點可以有多個資料集作為輸入,但只產生一個資料集作為輸出。包含一個文字欄位,您可以在其中輸入 Apache SparkSQL 查詢。您可以將別名指派給每個用作輸入的資料集,以協助簡化 SQL 查詢。如需 SQL 語法的詳細資訊,請參閱 Spark SQL 文件

注意

如果您使用 Spark SQL 轉換搭配位於 VPC 中的資料來源,請新增 AWS Glue VPC 端點至包含資料來源的 VPC。如需設定開發端點的詳細資訊,請參閱 AWS Glue 開發人員指南中的新增開發端點設定適用於開發端點的環境以及存取您的開發端點

在任務圖表中使用 SQL 轉換節點
  1. (選用) 視需要將轉換節點新增至任務圖表。選擇 Spark SQL 節點類型。

  2. Node properties (節點屬性) 索引標籤上,輸入任務圖表中節點的名稱。如果尚未選取節點父項,或者如果您想要進行 SQL 轉換的多個輸入,請從 Node parents (節點父項) 清單選擇用作轉換之輸入來源的節點。視需要新增其他父節點。

  3. 選擇節點詳細資訊面板中的 Transform (轉換) 索引標籤。

  4. SQL 查詢的來源資料集是由您在每個節點欄位的 Name (名稱) 中指定的名稱來識別。如果您不想使用這些名稱,或者名稱不適合 SQL 查詢,您可以將名稱關聯到每個資料集。主控台提供預設別名,例如 MyDataSource

    螢幕擷取畫面顯示 3 節點任務圖表。第一個節點是名為「This is a really long name (這是一個很長的名稱)」的 S3 來源節點。第二個節點是名為「SQL query (SQL 查詢)」的 SQL 程式碼轉換節點。第三個節點是名為「Revised flight data (修訂航班資料)」的 S3 資料目標節點。已選取 SQL 查詢節點,並且 [Transform (轉換)] 索引標籤會顯示在節點詳細資訊面板中。在 [Transform (轉換)] 索引標籤面板中,[Input sources (輸入來源)] 欄位顯示一個項目:「This is a really long name (這是一個很長的名稱)」。相關聯的 Spark SQL 別名欄位顯示「myDataSource」。[Code block (程式碼區塊)] 欄位顯示「select * from myDataSource (從 myDataSource 選取 *)」。

    例如,如果 SQL 轉換節點的父節點名為 Rename Org PK field,您可以將名稱 org_table 與此資料集相關聯。然後可以在 SQL 查詢中使用此別名來代替節點名稱。

  5. Code block (程式碼區塊) 標題下的文字輸入欄位,貼上或輸入 SQL 查詢。文字欄位會顯示 SQL 語法反白顯示和關鍵字建議。

  6. 選取 SQL 轉換節點後,選擇 Output schema (輸出結構描述) 索引標籤,然後選擇 Edit (編輯)。提供描述 SQL 查詢輸出欄位的欄和資料類型。

    使用頁面的 Output schema (輸出結構描述) 區段中的以下動作指定結構描述:

    • 若要重新命名欄,請將游標放在欄的 Key (索引鍵) 文字方塊 (也稱為欄位屬性索引鍵),然後輸入新名稱。

    • 若要變更欄的資料類型,請從下拉式清單中選取欄的新資料類型。

    • 若要將新的頂層欄新增至結構描述,請選擇 [Overflow (溢位)] ( A rectangle with an ellipsis (...) in the center ) 按鈕,然後選擇 Add root key (新增根索引鍵)。新的欄會加入在結構描述的頂端。

    • 若要從結構描述移除欄,請選擇索引鍵名稱最右側的刪除圖示 ( An outline of a trash can )。

  7. 當您完成指定輸出結構描述時,請選擇 Apply (套用) 儲存您的變更,並結束結構描述編輯器。如果您不想儲存變更,請選擇 Cancel (取消) 以編輯結構描述編輯器。

  8. (選用) 設定節點屬性和轉換屬性之後,您可以選擇節點詳細資訊面板中的 Data preview (資料預覽) 索引標籤來預覽修改後的資料集。當您第一次針對任務中的任何節點選擇此索引標籤時,系統會提示您提供 IAM 角色以存取資料。使用此功能需支付相關費用,並且在您提供 IAM 角色後立即開始計費。