AWS Glue 將 Spark 任務遷移至 5.1 AWS Glue 版 - AWS Glue

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

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 version5.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) 資料表的叢集。

突破性變更

請注意下列變更:

要遷移至 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 中,選擇 UpdateJob API 操作 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 中,選擇 CreateJob API 操作 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.region Spark 組態。

  • 若要繼續使用 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

連接器和 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