

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

# AWS Glue ETL
<a name="aws-glue-etl"></a>

AWS Glue ETL 支援從各種來源擷取資料、轉換資料以符合您的業務需求，以及將其載入您選擇的目的地。此服務使用 Apache Spark 引擎將大數據工作負載分散到工作者節點，透過記憶體內處理實現更快的轉換。

AWS Glue 支援各種資料來源，包括 Amazon Simple Storage Service (Amazon S3)、Amazon DynamoDB 和 Amazon Relational Database Service (Amazon RDS)。若要進一步了解支援的資料來源，請參閱 [中的 ETL 連線類型和選項 AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect.html)。

## 在 中編寫 AWS Glue
<a name="authoring-etl"></a>

AWS Glue 提供多種撰寫 ETL 任務的方式，視您的體驗和使用案例而定：
+ [Python shell 任務](https://docs.aws.amazon.com/glue/latest/dg/add-job-python.html)旨在執行以 Python 撰寫的基本 ETL 指令碼。這些任務在單一機器上執行，更適合小型或中型資料集。
+ [Apache Spark 任務](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming.html)可以用 Python 或 Scala 撰寫。這些任務使用 Spark 水平擴展多個工作者節點的工作負載，以便處理大型資料集和複雜的轉換。
+ [AWS Glue 串流 ETL](https://docs.aws.amazon.com/glue/latest/dg/add-job-streaming.html) 使用 Apache Spark 結構化串流引擎，使用[一次性](https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#overview)語意轉換微型批次任務中的串流資料。您可以在 Python 或 Scala 中撰寫 AWS Glue 串流任務。
+ [AWS Glue Studio](https://docs.aws.amazon.com/glue/latest/dg/author-job-glue.html) 是一種視覺化boxes-and-arrows樣式界面，可讓初次使用 Apache Spark 程式設計的開發人員存取 Spark 型 ETL。

## 資料處理單位
<a name="dpu-worker-type"></a>

AWS Glue 使用資料處理單位 DPUs) 來測量配置給 ETL 任務的運算資源，並計算成本。每個 DPU 相當於 4 個 vCPUs和 16 GB 記憶體。應根據 DPUs 配置到您的 AWS Glue 任務。[配置適當數量的 DPUs](https://docs.aws.amazon.com/glue/latest/dg/monitor-debug-capacity.html#monitor-debug-capacity-fix) 可讓您平衡效能需求與成本限制。

AWS Glue 提供[數種針對各種工作負載最佳化的工作者類型](https://docs.aws.amazon.com/glue/latest/dg/add-job.html#create-job)：
+ G.1X 或 G.2X （適用於大多數資料轉換、聯結和查詢）
+ G.4X 或 G.8X （適用於更嚴苛的資料轉換、彙總、聯結和查詢）
+ G.025X （適用於低容量和零星資料串流）
+ 標準 （適用於 1.0 版或更早 AWS Glue 版本；不建議用於較新版本的 AWS Glue)

## 使用 Python shell
<a name="python-shell"></a>

對於 Python shell 任務，您可以使用 1 個 DPU 來使用 16 GB 記憶體，或使用 0.0625 個 DPU 來使用 1 GB 記憶體。Python shell 適用於具有中小型資料集 （最多約 10 GB) 的基本 ETL 任務。

## 比較工作者類型
<a name="compare-worker-types"></a>

下表顯示使用 Apache Spark 環境的批次、串流和 AWS Glue Studio ETL 工作負載的不同 AWS Glue 工作者類型。


|  |  |  |  |  |  |  | 
| --- |--- |--- |--- |--- |--- |--- |
|  | **G.1X** | **G.2X** | **G.4X** | **G.8X** | **G.025X** | **標準** | 
| vCPU | 4 | 8 | 16 | 32 | 2 | 4 | 
| 記憶體 | 16 GB | 32 GB | 64 GB | 128 GB | 4 GB | 16 GB | 
| 磁碟空間 | 64 GB | 128 GB | 256 GB | 512 GB | 64 GB | 50 GB | 
| 每個工作者的執行器 | 1  | 1 | 1 | 1 | 1 | 2 | 
| DPU | 1 | 2 | 4 | 8 | 0.25 | 1 | 

2.0 版和更新 AWS Glue 版本不建議使用標準工作者類型。G.025X 工作者類型僅適用於使用 3.0 AWS Glue 版或更新版本的串流任務。