本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Glue 將 Spark 任務遷移至 5.1 AWS Glue 版
本主題說明 0.9、1.0、2.0、3.0、4.0 和 5.0 AWS Glue 版之間的變更,以允許您將 Spark 應用程式和 ETL 任務遷移至 AWS Glue 5.1。它還描述了 AWS Glue 5.1 中的功能以及使用它的優勢。
若要將此功能與 AWS Glue ETL 任務搭配使用,請在建立任務Glue version時5.1為 選擇 。
主題
新功能
本節說明 5.1 AWS Glue 版的新功能和優點。
-
Apache Spark 從 3.5.4 in AWS Glue 5.0 更新至 3.5.6 in AWS Glue 5.1。
-
開放資料表格式 (OTF) 已更新為 Hudi 1.0.2、Iceberg 1.10.0 和 Delta Lake 3.3.2
-
Iceberg 具體化視觀表 - 建立和管理 Iceberg 具體化視觀表 (MV)。如需詳細資訊,請參閱部落格文章
-
Iceberg 格式 3.0 版 - 擴展資料類型和現有中繼資料結構,以新增新功能。如需詳細資訊,請參閱 Iceberg 資料表規格
。 -
Hudi 完整資料表存取 - Apache Spark 中 Apache Hudi 的完整資料表存取 (FTA) 控制,取決於 中定義的政策。當任務角色具有完整的資料表存取權時,此功能可在已註冊的資料表上啟用來自 AWS Glue ETL 任務的讀取和寫入操作。
-
Spark 原生精細存取控制 (FGAC) 支援使用 - DDL/DML 操作 (例如 CREATE、ALTER、DELETE、DROP) 搭配在 中註冊的 Apache Hive、Apache Iceberg 和 Delta Lake 資料表的精細存取控制。
-
Spark 任務的稽核內容 - 日誌中已啟用任務的 AWS Glue ETL 任務的稽核內容可供 AWS Glue 和 AWS Lake Formation API 呼叫使用
已知問題和限制
-
檢視 SQL 子句的有限支援,用於建立具體化檢視、查詢重寫和增量重新整理。如需更多詳細資訊,請參閱 Iceberg 具體化檢視功能文件頁面
-
Hudi FTA 寫入要求在任務執行期間使用 HoodieCredentialedHadoopStorage 進行登入資料販賣。在執行 Hudi 任務時設定下列組態:
hoodie.storage.class=org.apache.spark.sql.hudi.storage.HoodieCredentialedHadoopStorage -
Hudi FTA 寫入支援僅適用於預設 Hudi 組態。自訂或非預設 Hudi 設定可能未完全支援,並可能導致非預期的行為。FTA 寫入模式也不支援 Hudi Merge-On-Read (MOR) 資料表的叢集。
突破性變更
請注意下列變更:
-
S3A 檔案系統已將 EMRFS 取代為預設 S3 連接器。如需如何遷移的資訊,請參閱 從 AWS Glue 5.0 遷移至 AWS Glue 5.1。
要遷移至 AWS Glue 5.1 的動作
對於現有的任務,請將舊版 Glue version 變更為任務組態中的 Glue 5.1。
-
在 AWS Glue Studio
Glue 5.1 - Supports Spark 3.5.6, Scala 2, Python 3中,選擇Glue version。 -
在 API 中,選擇
UpdateJobAPI 操作GlueVersion參數中的5.1。
對於新任務,當您建立任務時請選擇 Glue 5.1。
-
在主控台中,在
Glue version中選擇Spark 3.5.6, Python 3 (Glue Version 5.1) or Spark 3.5.6, Scala 2 (Glue Version 5.1)。 -
在 AWS Glue Studio
Glue 5.1 - Supports Spark 3.5.6, Scala 2, Python 3中,選擇Glue version。 -
在 API 中,選擇
CreateJobAPI 操作GlueVersion參數中的5.1。
若要檢視來自 AWS Glue 2.0 或更早版本的 AWS Glue 5.1 Spark 事件日誌,請使用 CloudFormation 或 Docker 啟動升級的 Spark 歷史記錄伺服器 for AWS Glue 5.1。
移轉檢查清單
檢閱此檢查清單以進行移轉:
-
【Python】 將 boto 參考從 1.34 更新為 1.40。
從 AWS Glue 5.0 遷移至 AWS Glue 5.1
存在於 AWS Glue 5.0 中的所有現有任務參數和主要功能都將存在於 AWS Glue 5.1 中。移轉時請注意下列變更:
-
在 AWS Glue 5.1 中,S3A 檔案系統已取代 EMRFS 做為預設 S3 連接器。如果
spark.hadoop.fs.s3a.endpoint.region未設定spark.hadoop.fs.s3a.endpoint和 ,則 S3A 使用的預設區域為us-east-2。這可能會導致問題,例如 S3 上傳逾時錯誤,尤其是 VPC 任務。若要緩解此變更造成的問題,請在 AWS Glue 5.1 中使用 S3A 檔案系統時設定spark.hadoop.fs.s3a.endpoint.regionSpark 組態。 -
若要繼續使用 EMRFS 而非 S3A,請設定下列 Spark 組態:
--conf spark.hadoop.fs.s3.impl=com.amazon.ws.emr.hadoop.fs.EmrFileSystem --conf spark.hadoop.fs.s3n.impl=com.amazon.ws.emr.hadoop.fs.EmrFileSystem --conf spark.hadoop.fs.AbstractFileSystem.s3.impl=org.apache.hadoop.fs.s3.EMRFSDelegate
請參閱 Spark 移轉文件:
從較舊 AWS Glue 版本遷移至 AWS Glue 5.1
-
如需與 AWS Glue 4.0 到 AWS Glue 5.0 相關的遷移步驟,請參閱從 AWS Glue 4.0 遷移到 AWS Glue 5.0。
-
如需與 AWS Glue 3.0 至 AWS Glue 5.0 相關的遷移步驟,請參閱從 AWS Glue 3.0 遷移至 AWS Glue 5.0。
-
如需與 AWS Glue 2.0 到 AWS Glue 5.0 相關的遷移步驟,以及 2.0 和 4.0 AWS Glue 版之間的遷移差異清單,請參閱從 AWS Glue 2.0 遷移到 AWS Glue 5.0。
連接器和 JDBC 驅動程式遷移 for AWS Glue 5.1
如需已升級的 JDBC 和資料湖連接器版本,請參閱:
下列變更適用於 for AWS Glue 5附錄 D:開放式資料表格式升級.1 中識別的 OTF 版本升級。
Apache Hudi
請注意下列變更:
支援 Lake Formation 註冊資料表上的 FTA 讀取和寫入存取。
Apache Iceberg
請注意下列變更:
支援 Iceberg 格式第 3 版。支援下列功能:
用於分割和排序的多引數轉換。
資料列譜系追蹤。
刪除向量。在部落格文章
中進一步了解 資料表加密金鑰。
支援已註冊資料表上的 Spark 原生 FGAC 寫入。
Athena SQL 相容性 - 由於錯誤,無法讀取 EMR Spark 建立的 Iceberg V3 資料表:
GENERIC_INTERNAL_ERROR: Cannot read unsupported version 3
Delta Lake
請注意下列變更:
支援 Lake Formation 註冊資料表上的 FTA 讀取和寫入存取。
附錄 A:值得注意的相依性升級
以下是相依性升級:
| 相依性 | in AWS Glue 5.1 版本 | in AWS Glue 5.0 版本 | in AWS Glue 4.0 版本 | in AWS Glue 3.0 版本 | in AWS Glue 2.0 版本 | in AWS Glue 1.0 版本 |
|---|---|---|---|---|---|---|
| Java | 17 | 17 | 8 | 8 | 8 | 8 |
| Spark | 3.5.6 | 3.5.4 | 3.3.0-amzn-1 | 3.1.1-amzn-0 | 2.4.3 | 2.4.3 |
| Hadoop | 3.4.1 | 3.4.1 | 3.3.3-amzn-0 | 3.2.1-amzn-3 | 2.8.5-amzn-5 | 2.8.5-amzn-1 |
| Scala | 2.12.18 | 2.12.18 | 2.12 | 2.12 | 2.11 | 2.11 |
| Jackson | 2.15.2 | 2.15.2 | 2.12 | 2.12 | 2.11 | 2.11 |
| Hive | 2.3.9-amzn-4 | 2.3.9-amzn-4 | 2.3.9-amzn-2 | 2.3.7-amzn-4 | 1.2 | 1.2 |
| EMRFS | 2.73.0 | 2.69.0 | 2.54.0 | 2.46.0 | 2.38.0 | 2.30.0 |
| Json4s | 3.7.0-M11 | 3.7.0-M11 | 3.7.0-M11 | 3.6.6 | 3.5.x | 3.5.x |
| Arrow | 12.0.1 | 12.0.1 | 7.0.0 | 2.0.0 | 0.10.0 | 0.10.0 |
| AWS Glue Data Catalog 用戶端 | 4.9.0 | 4.5.0 | 3.7.0 | 3.0.0 | 1.10.0 | N/A |
| AWS 適用於 Java 的 SDK | 2.35.5 | 2.29.52 | 1.12 | 1.12 | ||
| Python | 3.11 | 3.11 | 3.10 | 3.7 | 2.7 和 3.6 | 2.7 和 3.6 |
| Boto | 1.40.61 | 1.34.131 | 1.26 | 1.18 | 1.12 | N/A |
| EMR DynamoDB 連接器 | 5.7.0 | 5.6.0 | 4.16.0 |
附錄 B:JDBC 驅動程式升級
以下是 JDBC 驅動程式升級:
| 驅動程式 | JDBC 驅動程式 AWS Glue 5.1 版 | JDBC 驅動程式 AWS Glue 5.0 版 | AWS Glue 4.0 中的 JDBC 驅動程式版本 | JDBC 驅動程式 in AWS Glue 3.0 版 | 過去版本的 JDBC 驅動程式 AWS Glue 版本 |
|---|---|---|---|---|---|
| MySQL | 8.0.33 | 8.0.33 | 8.0.23 | 8.0.23 | 5.1 |
| Microsoft SQL Server | 10.2.0 | 10.2.0 | 9.4.0 | 7.0.0 | 6.1.0 |
| Oracle 資料庫 | 23.3.0.23.09 | 23.3.0.23.09 | 21.7 | 21.1 | 11.2 |
| PostgreSQL | 42.7.3 | 42.7.3 | 42.3.6 | 42.2.18 | 42.1.0 |
| Amazon Redshift |
redshift-jdbc42-2.1.0.29 |
redshift-jdbc42-2.1.0.29 |
redshift-jdbc42-2.1.0.16 |
redshift-jdbc41-1.2.12.1017 |
redshift-jdbc41-1.2.12.1017 |
| SAP Hana | 2.20.17 | 2.20.17 | 2.17.12 | ||
| Teradata | 20.00.00.33 | 20.00.00.33 | 20.00.00.06 |
附錄 C:連接器升級
以下是連接器升級:
| 驅動程式 | 連接器 AWS Glue 5.1 版 | AWS Glue 5.0 中的連接器版本 | AWS Glue 4.0 中的連接器版本 | 連接器 in AWS Glue 3.0 版 |
|---|---|---|---|---|
| EMR DynamoDB 連接器 | 5.7.0 | 5.6.0 | 4.16.0 | |
| Amazon Redshift | 6.4.2 | 6.4.0 | 6.1.3 | |
| OpenSearch | 1.2.0 | 1.2.0 | 1.0.1 | |
| MongoDB | 10.3.0 | 10.3.0 | 10.0.4 | 3.0.0 |
| Snowflake | 3.1.1 | 3.0.0 | 2.12.0 | |
| Google BigQuery | 0.32.2 | 0.32.2 | 0.32.2 | |
| AzureCosmos | 4.33.0 | 4.33.0 | 4.22.0 | |
| AzureSQL | 1.3.0 | 1.3.0 | 1.3.0 | |
| Vertica | 3.3.5 | 3.3.5 | 3.3.5 |
附錄 D:開放式資料表格式升級
以下是開放式資料表格式升級:
| OTF | 連接器 AWS Glue 5.1 版 | AWS Glue 5.0 中的連接器版本 | AWS Glue 4.0 中的連接器版本 | 連接器 in AWS Glue 3.0 版 |
|---|---|---|---|---|
| Hudi | 1.0.2 | 0.15.0 | 0.12.1 | 0.10.1 |
| Delta Lake | 3.3.2 | 3.3.0 | 2.1.0 | 1.0.0 |
| Iceberg | 1.10.0 | 1.7.1 | 1.0.0 | 0.13.1 |