

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

# AWS Glue 元件
<a name="components-overview"></a>

AWS Glue 提供主控台和 API 操作，以設定和管理擷取、轉換和載入 (ETL) 工作負載。您可以透過多種語言特定的 SDKs和 AWS Command Line Interface () 使用 API 操作AWS CLI。如需使用 的詳細資訊 AWS CLI，請參閱 [AWS CLI 命令參考](https://docs.aws.amazon.com/cli/latest/reference/)。

AWS Glue 使用 AWS Glue Data Catalog 來存放有關資料來源、轉換和目標的中繼資料。資料目錄可用於替換 Apache Hive 中繼存放區。 AWS Glue Jobs system 提供受管基礎設施，用於定義、排程和執行資料上的 ETL 操作。如需 AWS Glue API 的詳細資訊，請參閱 [AWS Glue API](aws-glue-api.md)。

## AWS Glue 主控台
<a name="console-intro"></a>

您可以使用 AWS Glue 主控台來定義和協調 ETL 工作流程。主控台會在 AWS Glue Data Catalog 和 中呼叫數個 API 操作 AWS Glue Jobs system ，以執行下列任務：
+ 定義任務、資料表、爬蟲程式和連線等 AWS Glue 物件。
+ 排程爬蟲程式執行的時間。
+ 定義事件或排程以進行任務觸發。
+ 搜尋和篩選 AWS Glue 物件清單。
+ 編輯轉換指令碼。

## AWS Glue Data Catalog
<a name="data-catalog-intro"></a>

 AWS Glue Data Catalog 是您在 AWS 雲端中的持久性技術中繼資料存放區。

每個 AWS 帳戶 AWS Glue Data Catalog 在每個 AWS 區域各有一個 。每個資料目錄都是組織成資料庫的高度可擴展資料表集合。資料表是存放在 Amazon RDS、Apache Hadoop 分散式檔案系統、Amazon OpenSearch Service 等來源中的結構化或半結構化資料集合的中繼資料表示。 AWS Glue Data Catalog 提供統一的儲存庫，其中不同的系統可以存放和尋找中繼資料，以追蹤資料孤島中的資料。然後，您可以使用中繼資料在各個應用程式中以一致的方式來查詢和轉換資料。

 您可以將 Data Catalog 與 AWS Identity and Access Management 政策和 Lake Formation 搭配使用，以控制對資料表和資料庫的存取。這樣一來，您可讓企業中不同的群組將資料安全地發佈給更廣泛的組織，同時以更精細的方式保護敏感資訊。

資料目錄、CloudTrail 和 Lake Formation 也可為您提供完整的稽核和管理功能，包括結構描述變更追蹤以及資料存取控制。這有助於確保資料不會受到不適當的修改或意外遭到共享。

 如需有關保護和稽核 AWS Glue Data Catalog的資訊，請參閱：
+  **AWS Lake Formation** – 如需詳細資訊，請參閱《 AWS Lake Formation開發人員指南》[https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html)中的*什麼是AWS Lake Formation ？*。
+  **CloudTrail** – 如需詳細資訊，請參閱 *AWS CloudTrail 使用者指南*中的[什麼是 CloudTrail？](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)。

以下是使用 的其他 AWS 服務和開放原始碼專案 AWS Glue Data Catalog：
+ **Amazon Athena** - 如需詳細資訊，請參閱[https://docs.aws.amazon.com/athena/latest/ug/understanding-tables-databases-and-the-data-catalog.html](https://docs.aws.amazon.com/athena/latest/ug/understanding-tables-databases-and-the-data-catalog.html)《Amazon Athena 使用者指南》中的*了解資料表、資料庫和資料目錄*。
+ **Amazon Redshift Spectrum** - 如需詳細資訊，請參閱《Amazon Redshift 資料庫開發人員指南》[https://docs.aws.amazon.com/redshift/latest/dg/c-using-spectrum.html](https://docs.aws.amazon.com/redshift/latest/dg/c-using-spectrum.html)中的*使用 Amazon Redshift Spectrum 以查詢外部資料*。
+ **Amazon EMR** - 如需詳細資訊，請參閱《Amazon EMR 管理指南》**中的[針對 AWS Glue Data Catalog的 Amazon EMR 存取使用資源類型政策](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles-glue.html)。
+ client **AWS Glue Data Catalog for Apache Hive 中繼存放**區 – 如需此 GitHub 專案的詳細資訊，請參閱 [AWS Glue Data Catalog Client for Apache Hive 中繼存放區](https://github.com/awslabs/aws-glue-data-catalog-client-for-apache-hive-metastore)。



## AWS Glue 爬蟲程式和分類器
<a name="crawling-intro"></a>

AWS Glue 也可讓您設定爬蟲程式，以掃描各種儲存庫中的資料、對其進行分類、從中擷取結構描述資訊，以及自動將中繼資料存放在 中 AWS Glue Data Catalog。然後 AWS Glue Data Catalog ， 可用於引導 ETL 操作。

如需有關如何設定爬蟲程式和分類器的詳細資訊，請參閱 [使用編目程式填入 Data Catalog](add-crawler.md)。如需如何使用 AWS Glue API 編寫爬蟲程式和分類器的詳細資訊，請參閱 [爬蟲程式和分類器 API](aws-glue-api-crawler.md)。

## AWS Glue ETL 操作
<a name="etl-script-intro"></a>

使用 Data Catalog 中的中繼資料， AWS Glue 可以自動產生具有 AWS Glue 擴充功能的 Scala 或 PySpark （適用於 Apache Spark 的 Python API) 指令碼，您可以使用和修改這些指令碼來執行各種 ETL 操作。例如，您可以擷取、清理和轉換原始資料，然後將結果存放在不同的儲存庫，以供查詢和分析。這種指令碼可能會將 CSV 檔案轉換為關聯形式，並將其儲存在 Amazon Redshift。

如需如何使用 AWS Glue ETL 功能的詳細資訊，請參閱 [Spark 指令碼程式設計](aws-glue-programming.md)。

## 在 中串流 ETL AWS Glue
<a name="streaming-etl-intro"></a>

AWS Glue 可讓您使用持續執行的任務對串流資料執行 ETL 操作。 AWS Glue 串流 ETL 是以 Apache Spark 結構化串流引擎為基礎，並且可以從 Amazon Kinesis Data Streams、Apache Kafka 和 Amazon Managed Streaming for Apache Kafka (Amazon MSK) 擷取串流。串流 ETL 可以清理和轉換串流資料，並將其載入 Amazon S3 或 JDBC 資料存放區。在 中使用串流 ETL AWS Glue 來處理事件資料，例如 IoT 串流、點擊串流和網路日誌。

如果您知道串流資料來源的結構描述，您可以在資料目錄資料表中指定它。如果沒有，您可以啟用串流 ETL 任務中的結構描述偵測。然後，任務會自動從傳入資料判斷結構描述。

串流 ETL 任務可以使用 AWS Glue 內建轉換和 Apache Spark 結構化串流原生的轉換。如需詳細資訊，請參閱 Apache Spark 網站上的[串流 DataFrames/資料集上的操作](https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#operations-on-streaming-dataframesdatasets)。

如需詳細資訊，請參閱[在 AWS Glue 中串流 ETL 任務](add-job-streaming.md)。

## AWS Glue 任務系統
<a name="job-orchestration-intro"></a>

 AWS Glue Jobs system 提供受管基礎設施來協調您的 ETL 工作流程。您可以在 中建立任務 AWS Glue ，將用來擷取、轉換和傳輸資料的指令碼自動化到不同的位置。您可以排程和鏈結任務，或透過新資料到達等事件予以觸發。

如需使用 的詳細資訊 AWS Glue Jobs system，請參閱 [監控 AWS Glue](monitor-glue.md)。如需使用 AWS Glue Jobs system API 編寫程式的詳細資訊，請參閱[任務 API](aws-glue-api-jobs.md)。

## 視覺化 ETL 元件
<a name="glue-studio-ui-components"></a>

 AWS Glue 可讓您透過可操作的視覺化畫布建立 ETL 任務。

![\[螢幕擷取畫面顯示資源面板已關閉。\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/images/glue-studio-canvas.png)


### ETL 任務選單
<a name="glue-studio-ui-components-menu"></a>

 畫布頂端的選單選項允許您存取有關任務的各種檢視和組態詳細資訊。
+  **視覺化**：視覺化任務編輯器畫布。您可以在此處新增節點以建立任務。
+  **指令碼** – ETL 任務的指令碼表示法。 AWS Glue 會根據任務的視覺化表示法產生指令碼。您也可以編輯或下載指令碼。
**注意**  
 如果您選擇編輯指令碼，任務撰寫體驗會永久轉換為僅指令碼模式。之後，您將無法再使用視覺化編輯器來編輯任務。在選擇編輯指令碼之前，您應該新增所有任務來源、轉換和目標，並使用視覺化編輯器進行全部所需變更。
+  **任務詳細資訊**：「任務詳細資訊」索引標籤可讓您透過設定任務屬性來設定任務。有一些基本屬性，例如任務的名稱和描述、IAM 角色、任務類型、 AWS Glue 版本、語言、工作者類型、工作者數目、任務書籤、彈性執行、淘汰數目和任務逾時；還有進階屬性，例如連線、程式庫、任務參數和索引標籤。
+  **執行**：任務執行後，可存取此索引標籤以檢視過去的任務執行情況。
+  **資料品質**：資料品質會評估和監控資料資產的品質。您可以在此索引標籤上進一步了解如何使用資料品質，並將資料品質轉換新增至您的任務。
+  **排程**：您已排程的任務會顯示在此索引標籤中。如果沒有連接到此任務的排程，則無法存取此索引標籤。
+  **版本控制**：您可以將任務設定至 Git 儲存庫，以便將 Git 與任務搭配使用。

### 視覺化 ETL 面板
<a name="glue-studio-ui-components-panels"></a>

 當您在畫布中工作時，有多個面板可協助您設定節點，或協助您預覽資料並檢視輸出結構描述。
+  **屬性**：當您在畫布上選擇節點時，會顯示「屬性」面板。
+  **資料預覽**：「資料預覽」面板提供資料輸出的預覽，讓您可以在執行任務和檢查輸出之前做出決定。
+  **輸出結構描述**：「輸出結構描述」索引標籤可讓您檢視和編輯轉換節點的結構描述。

 **調整面板大小** 

 您可以調整畫面右側的「屬性」面板以及包含「資料預覽」和「輸出結構描述」索引標籤的底部面板的大小，方法是按一下面板邊緣，然後左右或上下拖曳它。
+  **屬性面板**：按一下並拖曳畫面右側的畫布邊緣，然後將其向左拖曳以擴大寬度，即可調整屬性面板的大小。依預設，面板會收合，而當選取節點時，屬性面板會以預設大小開啟。
+  **資料預覽和輸出結構描述面板**：按一下並拖曳畫面底部的畫布底部邊緣，然後將底部面板向上拖曳以擴大其高度，即可調整底部面板的大小。依預設，面板會收合，而當選取節點時，底部面板會以預設大小開啟。

### 任務畫布
<a name="glue-studio-ui-components-canvas"></a>

 您可以直接在視覺化 ETL 畫布上新增、移除和移動/重新排序節點。您可以將其視為工作區，以建立功能齊全的 ETL 任務，該任務從資料來源開始，且能以資料目標結束。

 當您使用畫布上的節點時，工具列可以協助您放大和縮小、移除節點、建立或編輯節點之間的連線、變更任務流程方向，以及復原或重做動作。

![\[螢幕擷取畫面顯示資源面板已關閉。\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/images/glue-studio-canvas-toolbar.png)


 浮動工具列會錨定至畫布右上角的大小，並包含多個執行動作的影像：
+  **版面圖示**：工具列中的第一個圖示是版面圖示。依預設，視覺任務的方向是從上到下。它透過從左到右水平排列節點來重新排列視覺化任務的方向。再次按一下版面圖示可將方向變更回從上到下。
+  **重新置中圖示**：重新置中圖示會透過將畫布檢視置中來變更畫布檢視。您可以將其與大型任務一起使用，以返回到中心位置。
+  **放大圖示**：放大圖示可放大畫布上節點的大小。
+  **縮小圖示**：縮小圖示可縮小畫布上節點的大小。
+  **垃圾桶圖示**：垃圾桶圖示會從視覺化任務中移除節點。您必須先選取節點。
+  **復原圖示**：復原圖示可回復對視覺化任務執行的最後一個動作。
+  **重做圖示**：重做圖示可重複對視覺化任務執行的最後一個動作。

 **使用迷你地圖** 

![\[該螢幕擷取畫面顯示迷你地圖的特寫。\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/images/glue-studio-canvas-minimap.png)


### 資源面板
<a name="glue-studio-ui-components-canvas-resource-panel"></a>

 資源面板包含您可用的所有資料來源、轉換動作和連線。透過按一下 "\$1" 圖示開啟畫布上的資源面板。這將開啟資源面板。

 若要關閉資源面板，按一下資源面板右上角的 **X**。這樣會隱藏面板，直到您準備好再次開啟面板為止。

![\[螢幕擷取畫面顯示已開啟的資源面板。\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/images/resource-panel-open.png)


#### 熱門轉換與資料
<a name="glue-studio-ui-components-popular-transforms"></a>

 面板頂部有一個**熱門轉換與資料**的集合。這些節點通常用於 AWS Glue。選擇一個節點以將其新增至畫布。您也可以按一下**熱門轉換與資料**標題旁的三角形，隱藏**熱門轉換與資料**。

 在**熱門轉換與資料**區段下方，您可以搜尋轉換和資料來源節點。結果會在您輸入時顯示。您新增至搜尋查詢的字母越多，結果清單就會越小。搜尋結果會根據節點名稱和/或描述填入。選擇對應節點以將其新增至畫布。

#### 轉換與資料
<a name="glue-studio-ui-components-transforms-and-data"></a>

 有兩個索引標籤可將節點組織為**轉換**與**資料**。

 **轉換**：當您選擇**轉換**索引標籤時，可以選取所有可用的轉換。選擇一個轉換以將其新增至畫布。您也可以選擇轉換清單底部的**新增轉換**，這樣會開啟文件的新頁面，以建立[自訂視覺化轉換](https://docs.aws.amazon.com/glue/latest/ug/custom-visual-transform.html)。按照這些步驟操作可建立自己的轉換。然後，您的轉換就會出現在可用轉換清單中。

 **資料**：資料索引標籤包含**來源**和**目標**的所有節點。您可以按一下「來源」或「目標」標題旁的三角形，隱藏來源和目標。再次按一下三角形可取消隱藏來源和目標。選擇來源或目標節點以將其新增至畫布。您也可以選擇**管理連線**來新增連線。這將打開主控台中的「連接器」頁面。