

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

# 在 中設定 Spark 任務的任務屬性 AWS Glue
<a name="add-job"></a>

當您在 AWS Glue 主控台上定義任務時，您可以為屬性提供值，以控制 AWS Glue 執行時間環境。

## 定義 Spark 任務的任務屬性
<a name="create-job"></a>

以下清單說明 Spark 任務的屬性。如需了解 Python shell 任務的屬性，請參閱 [為 Python shell 任務定義任務屬性](add-job-python.md#create-job-python-properties)。如需了解串流 ETL 任務的屬性，請參閱 [定義串流 ETL 任務的任務屬性](add-job-streaming.md#create-job-streaming-properties)。

這些屬性會依在 AWS Glue 主控台上**新增任務**精靈上顯示的順序列出。

**名稱**  
提供長度上限為 255 個字元的 UTF-8 字串。

**說明**  
提供最多 2,048 個字元的選用描述。

**IAM 角色**  
指定 IAM 角色以授權使用執行工作和存取資料存放區所需的資源。如需在 中執行任務之許可的詳細資訊 AWS Glue，請參閱 [Glue AWS 的身分和存取管理](security-iam.md)。

**Type**  
ETL 任務的類型。這是根據您選取的資料來源類型自動設定的。  
+ **Spark** 使用任務命令 `glueetl` 執行​ Apache Spark ETL 指令碼。
+ **Spark 串流**使用任務命令 `gluestreaming` 執行​ Apache Spark 串流 ETL 指令碼。如需詳細資訊，請參閱[在 AWS Glue 中串流 ETL 任務](add-job-streaming.md)。
+ **Python Shell**​ 使用任務命令 `pythonshell` 執行 Python 指令碼。如需詳細資訊，請參閱[在 AWS Glue 中設定 Python Shell 任務的任務屬性](add-job-python.md)。

**AWS Glue 版本**  
AWS Glue 版本會決定任務可用的 Apache Spark 和 Python 版本，如下表所示。      
<a name="table-glue-versions"></a>[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/add-job.html)
在未指定 AWS Glue 版本的情況下 AWS Glue 建立的任務預設為 5.1。

**Language**  
ETL 指令碼中的程式碼定義了任務的邏輯。指令碼可在 Python 或 Scala 中編寫。您可以選擇任務執行的指令碼是由 產生 AWS Glue 或由您提供。您可以在 Amazon Simple Storage Service (Amazon S3) 中提供指令碼名稱和位置。請確認路徑中沒有跟指令碼目錄名稱相同的檔案。若要進一步了解如何編寫指令碼，請參閱 [AWS Glue 程式設計指南](edit-script.md)。

**工作者類型**  
可使用以下工作者類型：  
 AWS Glue 工作者可用的資源是以 DPUs測量。DPU 是處理能力的相對測量，由 4 個 vCPUs的運算容量和 16 GB 的記憶體組成。  
+ **G.025X** – 選擇這種類型時，您也要提供 **工作者數目** 的值。每個工作者都會映射到 0.25 個 DPU (2 個 vCPU、4 GB 記憶體)，外加 84 GB 磁碟 (大約 34 GB 可用)。我們建議低容量串流任務採用這種工作者類型。此工作者類型僅適用於 3.0 AWS Glue 版或更新版本的串流任務。
+ **G.1X** – 選擇這種類型時，您也要提供 **工作者數目** 的值。每個工作者映射到 1 個 DPU (4 個 vCPUs，16 GB 記憶體），其中包含 94GB 磁碟 （大約 44GB 可用）。我們建議將此工作者類型用於資料轉換、聯結和查詢等工作負載，以提供可擴展且符合成本效益的方式來執行大部分任務。
+ **G.2X** – 選擇這種類型時，您也要提供 **工作者數目** 的值。每個工作者映射到 2 個 DPU (8 個 vCPUs，32 GB 記憶體） 和 138GB 磁碟 （大約 78GB 可用）。我們建議將此工作者類型用於資料轉換、聯結和查詢等工作負載，以提供可擴展且符合成本效益的方式來執行大部分任務。
+ **G.4X** – 選擇這種類型時，您也要提供 **工作者數目** 的值。每個工作者映射到 4 個 DPU (16 個 vCPUs，64 GB 記憶體） 和 256GB 磁碟 （大約 230GB 可用）。我們建議工作負載包含最嚴苛轉換、彙總、聯結和查詢的任務採用這種工作者類型。
+ **G.8X** – 選擇這種類型時，您也要提供 **工作者數目** 的值。每個工作者映射到 8 個 DPU (32 個 vCPUs，128 GB 記憶體） 和 512GB 磁碟 （大約 485GB 可用）。我們建議工作負載包含最嚴苛轉換、彙總、聯結和查詢的任務採用這種工作者類型。
+ **G.12X** – 選擇這種類型時，您也要提供 **工作者數目** 的值。每個工作者映射到 12 個 DPU (48 個 vCPUs，192 GB 記憶體） 和 768GB 磁碟 （大約 741GB 可用）。對於具有需要大量運算容量且資源密集的大型工作負載任務，我們建議使用此工作者類型。
+ **G.16X** – 選擇這種類型時，您也要提供 **工作者數目** 的值。每個工作者映射到 16 個 DPU (64 個 vCPUs，256 GB 記憶體） 和 1024GB 磁碟 （大約 996GB 可用）。對於具有需要最大運算容量的最大且資源最密集的工作負載的任務，我們建議使用此工作者類型。
+ **R.1X** – 選擇這種類型時，您也要提供 **工作者數目** 的值。每個工作者都會映射到 1 個具有記憶體最佳化組態的 DPU。對於經常遇到記憶體不足錯誤或需要高記憶體與 CPU 比率的記憶體密集型工作負載，建議使用此工作者類型。
+ **R.2X** – 選擇這種類型時，您也要提供 **工作者數目** 的值。每個工作者都會映射到 2 個具有記憶體最佳化組態的 DPU。對於經常遇到記憶體不足錯誤或需要高記憶體與 CPU 比率的記憶體密集型工作負載，建議使用此工作者類型。
+ **R.4X** – 選擇這種類型時，您也要提供 **工作者數目** 的值。每個工作者都會映射到 4 個具有記憶體最佳化組態的 DPU。對於經常遇到記憶體不足錯誤或需要高記憶體與 CPU 比率的大型記憶體密集型工作負載，建議使用此工作者類型。
+ **R.8X** – 選擇這種類型時，您也要提供 **工作者數目** 的值。每個工作者都會映射到 8 個具有記憶體最佳化組態的 DPU。對於經常遇到記憶體不足錯誤或需要高記憶體與 CPU 比率的超大型記憶體密集型工作負載，建議使用此工作者類型。
**工作者類型規格**  
下表提供了所有可用 G 工作者類型的詳細規格：    
**G 工作者類型規格**    
<a name="table-worker-specifications"></a>[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/add-job.html)
**重要：**G.12X 和 G.16X 工作者類型以及所有 R 工作者類型 (R.1X 到 R.8X) 具有更高的啟動延遲。  
我們會根據您執行 ETL 任務所使用的 DPU 數量，以小時費率計費。如需詳細資訊，請參閱 [AWS Glue 定價頁面](https://aws.amazon.com/glue/pricing/)。  
對於 1.0 版或更早 AWS Glue 版本的任務，當您使用主控台設定任務並指定**標準****工作者類型**時，會設定**最大容量**，且**工作者數量**會變成**最大容量** - 1 的值。如果您使用 AWS Command Line Interface (AWS CLI) 或 AWS SDK，您可以指定**最大容量**參數，也可以同時指定**工作者類型**和**工作者數量**。  
對於 2.0 AWS Glue 版或更新版本的任務，您無法指定**最大容量**。反之，您必須指定 **Worker type (工作者類型)** 與 **Number of workers (工作者數目)**。  
**G.4X** 和 **G.8X** 工作者類型僅適用於下列 AWS 區域中的 3.0 AWS Glue 版或更新版本 Spark ETL 任務：美國東部 （俄亥俄）、美國東部 （維吉尼亞北部）、美國西部 （加利佛尼亞北部）、美國西部 （奧勒岡）、亞太區域 （孟買）、亞太區域 （首爾）、亞太區域 （新加坡）、亞太區域 （雪梨）、亞太區域 （東京）、加拿大 （中部）、歐洲 （法蘭克福）、歐洲 （愛爾蘭）、歐洲 （倫敦）、歐洲 （西班牙）、歐洲 （斯德哥爾摩） 和南美洲 （聖保羅）。  
**G.12X**、 和 **R.1X** 透過**R.8X**工作者類型僅適用於下列 AWS 區域中的 4.0 AWS Glue 版或更新版本的 Spark ETL 任務：美國東部 （維吉尼亞北部）**G.16X**、美國西部 （奧勒岡）、美國東部 （俄亥俄）、歐洲 （愛爾蘭）、歐洲 （法蘭克福）、歐洲 （西班牙）、亞太區域 （東京） 和南美洲 （聖保羅）。未來版本將支援其他區域。

**請求的工作者數目**  
對於大多數工作者類型，您必須指定任務時執行所分配的工作者數目。

**工作書籤**  
指定任務執行時 AWS Glue 處理狀態資訊的方式。您可以讓任務書籤記住之前處理過的資料、更新狀態資訊，或是忽略狀態資訊。如需詳細資訊，請參閱[使用任務書籤追蹤處理的資料](monitor-continuations.md)。

**任務執行佇列**  
指定任務執行是否在稍後因服務配額而無法立即執行時排入佇列。  
核取時，會為任務執行啟用任務執行佇列。如果未填入，系統不會考慮將任務執行排入佇列。  
如果此設定與任務執行中設定的值不相符，則會使用任務執行欄位中的值。

**Flex 執行**  
當您使用 AWS Studio 或 API 設定任務時，您可以指定標準或彈性任務執行類別。您的任務可能具有不同程度的優先順序和時間敏感度。標準執行類別非常適合需要快速的任務啟動和專用資源的時間敏感型工作負載。  
彈性執行類別適用於非緊急任務，例如生產前任務、測試和一次性資料載入。使用 3.0 AWS Glue 版或更新版本和 `G.1X` 或 `G.2X` 工作者類型的任務支援彈性任務執行。新的工作者類型 (`G.12X`、`G.16X` 和 `R.1X` 至 `R.8X`) 不支援彈性執行。  

[![AWS Videos](http://img.youtube.com/vi/FnHCoTuDLXU/0.jpg)](http://www.youtube.com/watch?v=FnHCoTuDLXU)

彈性任務執行基於在任何時間點執行的工作者數目計費。針對執行中的彈性任務執行，可新增或移除工作者數目。計費方式不是簡單的 `Max Capacity` \* `Execution Time`，每個工作者都會計入任務執行期間的時間。計費為 (`Number of DPUs per worker` \* `time each worker ran`) 的總和。  
如需詳細資訊，請參閱 AWS Studio 中的說明面板，或 [任務](aws-glue-api-jobs-job.md)和 [任務執行](aws-glue-api-jobs-runs.md)。

**重試次數**  
指定 AWS Glue 在任務失敗時自動重新啟動任務的次數，從 0 到 10。達到逾時限制的任務不會重新啟動。

**任務逾時**  
設定執行時間上限 (單位為分鐘)。上限為 7 天或 10,080 分鐘。否則，任務會擲回例外狀況。  
當值保留空白時，Glue 4.0 版和更早版本會將逾時預設為 2，880 分鐘，Glue 5.0 版和更新版本預設為 480 分鐘。  
逾時值大於 7 天的任何現有 AWS Glue 任務將預設為 7 天。例如，如果您為批次任務指定了 20 天的逾時，則會在第 7 天停止。  
**任務逾時的最佳實務**  
任務會根據執行時間計費。為了避免意外費用，請設定適合您任務預期執行時間的逾時值。

**進階屬性**    
**指令碼檔案名稱**  
您的任務的唯一指令碼名稱。無法命名為**未命名任務**。  
**指令碼路徑**  
指令碼的 Amazon S3 位置。該路徑的格式必須是 `s3://bucket/prefix/path/`。其必須以斜線 (`/`) 結尾，且不包含任何檔案。  
**任務指標**  
當此任務執行時，開啟或關閉建立 Amazon CloudWatch 指標。若要檢視分析資料，您必須啟用此選項。如需如何開啟和視覺化呈現指標的詳細資訊，請參閱[任務監控與偵錯](monitor-profile-glue-job-cloudwatch-metrics.md)。  
**任務可觀測性指標**  
在此任務執行時，開啟建立其他可觀測性 CloudWatch 指標。如需詳細資訊，請參閱[使用 AWS Glue 可觀測性指標進行監控](monitor-observability.md)。  
**連續記錄**  
開啟連續記錄到 Amazon CloudWatch。如果未啟用此選項，則只有在任務完成後才能使用日誌。如需詳細資訊，請參閱 [記錄 AWS Glue 任務](monitor-continuous-logging.md)。  
**Spark 使用者介面**  
啟用 Spark UI 來監控此任務。如需詳細資訊，請參閱[為 AWS Glue 任務啟用 Apache Spark web UI](monitor-spark-ui-jobs.md)。  
**Spark UI 日誌路徑**  
啟用 Spark UI 時寫入日誌的路徑。  
**Spark UI 記錄和監控組態**  
請選擇下列其中一個選項：  
+ *標準*：使用 AWS Glue 任務執行 ID 作為檔案名稱寫入日誌。在 AWS Glue 主控台中開啟 Spark UI 監控。
+ *舊版*：使用 'spark-application-{timestamp}' 作為檔案名稱寫入日誌。請勿開啟 Spark UI 監控。
+ *標準和舊版*：將日誌同時寫入標準和舊版位置。在 AWS Glue 主控台中開啟 Spark UI 監控。  
**並行上限**  
設定此任務允許並行執行的最大數量。預設為 1。達到此閾值時，會傳回錯誤。可指定的最大值由服務限制來控制。例如，新的執行個體啟動時，如果有先前的任務仍在執行，您可能會想要傳回錯誤，以防相同任務的兩個執行個體同時執行。  
**暫時路徑**  
提供工作目錄在 Amazon S3 中的位置，其中暫時性中繼結果會在 AWS Glue 執行指令碼時寫入。請確認路徑中沒有跟暫時目錄名稱相同的檔案。當 AWS Glue 讀取和寫入 Amazon Redshift 和特定 AWS Glue 轉換時，會使用此目錄。  
AWS Glue 如果儲存貯體尚未存在於區域中， 會為任務建立暫存儲存貯體。此儲存貯體可能允許公開存取。您可以修改 Amazon S3 中的儲存貯體以設定的公有存取封鎖，或稍後在該區域的所有任務完成後刪除儲存貯體。  
**延遲通知閾值 (分鐘)**  
設定傳送延遲通知之前所要經過的時間閾值 (以分鐘為單位)。您可以設定這個閾值，以在 `RUNNING`、`STARTING` 或 `STOPPING` 任務執行所花的時間超過預期分鐘數時傳送通知。  
**安全組態**  
從清單中選擇安全組態。安全設定指定在 Amazon S3 目標上如何加密資料：不加密、使用 AWS KMS受管金鑰 (SSE-KMS) 或 Amazon S3 管理的加密金鑰 (SSE-S3) 進行伺服器端加密。  
**伺服器端加密**  
如果您選擇此選項，則 ETL 任務寫入 Amazon S3 時，資料會在靜態時加密 (使用 SSE-S3 加密)。您的 Amazon S3 資料目標和寫入 Amazon S3 暫時目錄的任何資料都會加密。系統會以任務參數的形式傳遞此選項。如需詳細資訊，請參閱 *Amazon Simple Storage Service 使用者指南*中的[透過 Amazon S3 受管加密金鑰 (SSE-S3) 使用伺服器端加密來保護資料](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html)。  
如果指定安全組態，則會忽略此選項。  
**使用 Glue 資料目錄做為 Hive 中繼存放區**  
選取 以使用 AWS Glue Data Catalog 做為 Hive 中繼存放區。此任務所用的 IAM 角色必須具有 `glue:CreateDatabase` 許可。稱為「預設」的資料庫隨即在 Data Catalog 中建立 (如當時該資料庫尚未存在)。

**連線**  
選擇 VPC 組態，以存取位於虛擬私有雲端 (VPC) 中的 Amazon S3 資料來源。您可以在 AWS Glue中建立和管理網路連線。如需詳細資訊，請參閱[連線至資料](glue-connections.md)。

**Libraries (程式庫)**    
**Python 程式庫路徑，相依的 JAR 路徑和參考檔案路徑**  
如果您的指令碼需要這些選項，請進行指定。定義此任務時，您可以為這些選項定義以逗號分隔的 Amazon S3 路徑。執行任務時，您可以覆寫這些路徑。如需詳細資訊，請參閱[提供您的自訂指令碼](console-custom-created.md)。  
**工作參數**  
一組金鑰/值對，會以具名參數的形式傳遞至指令碼。這些是指令碼執行時使用的預設值，但您可以在觸發時或在執行任務階段覆寫。您必須在索引鍵名稱前加上 `--`；例如：`--myKey`。使用 時，您會傳遞任務參數做為映射 AWS Command Line Interface。  
如需範例，請參閱 [在 AWS Glue 中傳遞和存取 Python 參數](aws-glue-programming-python-calling.md#aws-glue-programming-python-calling-parameters) 的 Python 參數。  
**Tags (標籤)**  
使用 **Tag key (標籤金鑰)** 和選用的 **Tag value (標籤值)**，標記您的任務。標籤鍵在建立後，將是唯讀狀態。應用標籤至某些資源，有助於您對其進行整理和識別。如需詳細資訊，請參閱[AWS 中的標籤 AWS Glue](monitor-tags.md)。

## 存取 Lake Formation 受管資料表任務的限制
<a name="lf-table-restrictions"></a>

建立從 讀取或寫入由 管理之資料表的任務時，請記住下列注意事項和限制 AWS Lake Formation：
+ 使用儲存格層級篩選條件存取資料表的任務不支援下列功能：
  + [任務書籤](https://docs.aws.amazon.com/glue/latest/dg/monitor-continuations.html)和[限制執行](https://docs.aws.amazon.com/glue/latest/dg/bounded-execution.html)
  + [Push-down 述詞](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-partitions.html#aws-glue-programming-etl-partitions-pushdowns)
  + [伺服器端類別目錄分割述詞](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-partitions.html#aws-glue-programming-etl-partitions-cat-predicates)
  + [enableUpdateCatalog](https://docs.aws.amazon.com/glue/latest/dg/update-from-job.html)