選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

AWS Glue 將 Spark 任務遷移至 5.0 AWS Glue 版

焦點模式
AWS Glue 將 Spark 任務遷移至 5.0 AWS Glue 版 - AWS Glue

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

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

本主題說明 0.9、1.0、2.0、3.0 和 4.0 AWS Glue 版之間的變更,以允許您將 Spark 應用程式和 ETL 任務遷移至 AWS Glue 5.0。它還描述了 AWS Glue 5.0 中的功能以及使用它的優勢。

若要將此功能與 AWS Glue ETL 任務搭配使用,請在建立任務Glue version5.0為 選擇 。

新功能

本節說明 5.0 AWS Glue 版的新功能和優點。

  • Apache Spark 從 3.3.0 in AWS Glue 4.0 更新至 3.5.2 in AWS Glue 5.0。請參閱 從 Spark 3.3.0 到 Spark 3.5.2 的主要增強功能

  • 使用 Lake Formation 的 Spark 原生精細存取控制 (FGAC)。如需詳細資訊,請參閱使用 AWS Glue 搭配 AWS Lake Formation 進行精細存取控制

    請注意 Spark 原生 FGAC 的下列考量或限制:

    • 目前不支援資料寫入

    • GlueContext 使用 Lake Formation 寫入 Iceberg 需要改用 IAM 存取控制

    如需使用 Spark 原生 FGAC 時限制和考量的完整清單,請參閱考量與限制

  • 支援 Amazon S3 Access Grants 作為 Amazon S3 資料的可擴展存取控制解決方案 AWS Glue。如需詳細資訊,請參閱搭配 使用 Amazon S3 Access Grants AWS Glue

  • 開放資料表格式 (OTF) 已更新為 Hudi 0.15.0、Iceberg 1.6.1 和 Delta Lake 3.2.1

  • Amazon SageMaker Unified Studio 支援。

  • Amazon SageMaker Lakehouse 和資料抽象整合。如需詳細資訊,請參閱從 AWS Glue ETL 查詢中繼存放區資料目錄

  • 支援使用 安裝其他 Python 程式庫requirements.txt。如需詳細資訊,請參閱使用 requirements.txt AWS 在 Glue 5.0 中安裝其他 Python 程式庫

  • AWS Glue 5.0 支援 Amazon DataZone 中的資料譜系。您可以設定 AWS Glue 在 Spark 任務執行期間自動收集譜系資訊,並傳送要在 Amazon DataZone 中視覺化的譜系事件。如需詳細資訊,請參閱 Amazon DataZone 中的資料譜系

    若要在 AWS Glue 主控台上設定,請開啟產生譜系事件,然後在任務詳細資訊索引標籤輸入您的 Amazon DataZone 網域 ID。

    螢幕擷取畫面顯示 開啟 Amazon DataZone 的日期系列 AWS Glue。

    或者,您可以提供下列任務參數 (提供 DataZone 網域 ID):

    • 索引鍵:--conf

    • 值:

      extraListeners=io.openlineage.spark.agent.OpenLineageSparkListener —conf spark.openlineage.transport.type=amazon_datazone_api -conf spark.openlineage.transport.domainId=<your-domain-ID>
  • 連接器和 JDBC 驅動程式更新。如需詳細資訊,請參閱 附錄 B:JDBC 驅動程式升級附錄 C:連接器升級

  • Java 從 8 更新至 17。

  • 為 AWS Glue G.1XG.2X工作者增加的儲存空間,磁碟空間分別增加到 94GB 和 138GB。如需詳細資訊,請參閱 任務

  • 如果任務支援 v2,則支援適用於 Java 的 AWS SDK 第 2 - AWS Glue 5.0 版任務可以使用適用於 Java 的 1.12.5692.28.8 版。適用於 Java 的 AWS SDK 2.x 是 1.x 版程式碼基礎的主要重寫。它建置在 Java 8+ 上,並新增了數個經常請求的功能。這些包括支援非封鎖 I/O 以及能夠在執行期外掛不同的 HTTP 實作。如需詳細資訊,包括從適用於 Java 的 SDK v1 到 v2 的遷移指南,請參閱AWS 適用於 Java 的 SDK 第 2 版指南。

重大變更

請注意下列重大變更:

  • GlueContextGlue 5.0 不支援具有 Glue 4.0 或 Glue 5.0 之前支援 AWS Lake Formation 許可的 型資料表層級存取控制。在 Glue 5.0 中使用新的 Spark 原生精細存取控制 (FGAC)。請注意下列詳細資訊:

    • 如果您需要精細存取控制 (FGAC) 來控制row/column/cell存取控制,您將需要在 Glue 4.0 DynamicFrame中從 GlueContext/Glue 遷移,並在 Glue 5.0 DataFrame中遷移 Spark 之前遷移。

    • 如果您需要資料庫/資料表層級存取控制,您可以將資料庫/資料表許可授予您的角色。這會略過從 遷移GlueContext到 Spark 資料框架的需要。

    • 如果您不需要 FGAC,則不需要遷移至 Spark 資料架構,而且任務書籤等GlueContext功能,下推述詞將繼續運作。

    • 使用 FGAC 的任務至少需要 4 個工作者:一個使用者驅動程式、一個系統驅動程式、一個系統執行器和一個待命使用者執行器。

    如需詳細資訊,請參閱使用 AWS Glue 搭配 AWS Lake Formation 進行精細存取控制

  • 不支援向量化 SIMD CSV 讀取器

  • 不支援持續記錄至輸出日誌群組。請改用error日誌群組。

  • AWS Glue 任務執行洞見job-insights-rule-driver已棄用。job-insights-rca-driver 日誌串流現在位於錯誤日誌群組中。

  • 不支援 Athena 型自訂/市場連接器。

  • 不支援 Adobe Marketo Engage、Facebook Ads、Google Ads、Google Analytics 4、Google Sheets、Hubspot、Instagram Ads、Intercom、Jira Cloud、Oracle NetSuite、Salesforce、Salesforce Marketing Cloud、Salesforce Marketing Cloud 帳戶參與、SAP OData、ServiceNow、Slack、Snapchat Ads、S Stripe、Zendesk 和 Zoho CRM 連接器。

  • Glue 5.0 不支援自訂 log4j 屬性。

從 Spark 3.3.0 到 Spark 3.5.2 的主要增強功能

請注意下列增強功能:

  • 適用於 Spark Connect 的 Python 用戶端 (SPARK-39375)。

  • 為資料表中的資料欄 (SPARK-38334) 實作 DEFAULT 值的支援。

  • 支援「橫向資料欄別名參考」(SPARK-27561)。

  • 強化錯誤類別的 SQLSTATE 用量 (SPARK-41994)。

  • 根據預設啟用 Bloom 篩選條件聯結 (SPARK-38841)。

  • 適用於大型應用程式的更佳 Spark UI 可擴展性和驅動程式穩定性 (SPARK-41053)。

  • 結構化串流中的非同步進度追蹤 (SPARK-39591)。

  • 結構化串流中的 Python 任意狀態處理 (SPARK-40434)。

  • PySpark (SPARK-42882) 和 NumPy 輸入支援。SPARK-39405

  • 為 PySpark 使用者定義函數 (SPARK-40281) 提供記憶體分析器。

  • 實作 PyTorch 分配器 (SPARK-41589)。

  • 發佈 SBOM 成品 (SPARK-41893)。

  • 支援IPv6-only的環境 (SPARK-39457)。

  • 自訂 K8s 排程器 (Apache YuniKorn 和 Volcano) GA (SPARK-42802)。

  • Spark Connect (SPARK-42554) 和 (SPARK-43351) 中的 Scala and Go 用戶端支援。

  • PyTorch 型分散式 ML 支援 Spark Connect (SPARK-42471)。

  • Python 和 Scala 中 Spark Connect 的結構式串流支援 (SPARK-42938)。

  • Pandas API 支援 Python Spark Connect 用戶端 (SPARK-42497)。

  • 介紹 Arrow Python UDFs(SPARK-40307)。

  • 支援 Python 使用者定義的資料表函數 (SPARK-43798)。

  • 將 PySpark 錯誤遷移至錯誤類別 (SPARK-42986)。

  • PySpark 測試架構 (SPARK-44042)。

  • 新增對 Datasketches HllSketch (SPARK-16484) 的支援。

  • 內建 SQL 函數改進 (SPARK-41231)。

  • IDENTIFIER 子句 (SPARK-43205)。

  • 將 SQL 函數新增至 Scala、Python 和 R API (SPARK-43907)。

  • 新增 SQL 函數 (SPARK-43922) 的具名引數支援。

  • 如果隨機資料遷移 (SPARK-41469),請避免在已解除委任的執行器上重新執行不必要的任務遺失。

  • 分散式 ML <> spark connect (SPARK-42471)。

  • DeepSpeed 分配器 (SPARK-44264)。

  • 實作 RocksDB 狀態存放區 (SPARK-43421) 的變更日誌檢查點。

  • 在運算子之間引入浮水印傳播 (SPARK-42376)。

  • 介紹 dropDuplicatesWithinWatermark (SPARK-42931)。

  • RocksDB 狀態存放區提供者記憶體管理增強功能 (SPARK-43311)。

要遷移至 AWS Glue 5.0 的動作

對於現有的任務,請將舊版 Glue version 變更為任務組態中的 Glue 5.0

  • 在 AWS Glue Studio Glue 5.0 - Supports Spark 3.5.2, Scala 2, Python 3中,選擇 Glue version

  • 在 API 中,選擇 UpdateJob API 操作 GlueVersion 參數中的 5.0

對於新任務,當您建立任務時請選擇 Glue 5.0

  • 在主控台中,在 Glue version 中選擇 Spark 3.5.2, Python 3 (Glue Version 5.0) or Spark 3.5.2, Scala 2 (Glue Version 5.0)

  • 在 AWS Glue Studio Glue 5.0 - Supports Spark 3.5.2, Scala 2, Python 3中,選擇 Glue version

  • 在 API 中,選擇 CreateJob API 操作 GlueVersion 參數中的 5.0

若要檢視來自 AWS Glue 2 AWS Glue .0 或更早版本的 5.0 Spark 事件日誌,請使用 AWS CloudFormation 或 Docker 啟動升級的 Spark 歷史記錄伺服器 for AWS Glue 5.0。

遷移檢查清單

檢閱此檢查清單以進行遷移:

  • Java 17 更新

  • 【Scala】 將 AWS SDK 呼叫從 v1 升級至 v2

  • Python 3.10 到 3.11 遷移

  • 【Python】 將 boto 參考從 1.26 更新為 1.34

AWS Glue 5.0 功能

本節會更詳細地描述 AWS Glue 功能。

從 AWS Glue ETL 查詢中繼存放區資料目錄

您可以註冊您的 AWS Glue 任務來存取 AWS Glue Data Catalog,這可讓資料表和其他中繼存放區資源用於分散消費者。Data Catalog 支援多目錄階層,跨 Amazon S3 資料湖統一所有資料。它還提供 Hive 中繼存放區 API 和開放原始碼 Apache Iceberg API 來存取資料。這些功能可供 AWS Glue 和其他資料導向服務使用,例如 Amazon EMR、Amazon Athena 和 Amazon Redshift。

當您在 Data Catalog 中建立資源時,您可以從支援 Apache Iceberg REST API. AWS Lake Formation manages 許可的任何 SQL 引擎存取資源。在組態之後,您可以使用熟悉的應用程式來查詢這些中繼存放區資源,藉此利用 AWS Glue的功能來查詢不同的資料。這些包括 Apache Spark 和 Trino。

中繼資料資源的組織方式

資料是使用 以目錄、資料庫和資料表的邏輯階層進行組織: AWS Glue Data Catalog

  • 目錄 – 邏輯容器,可存放來自資料存放區的物件,例如結構描述或資料表。

  • 資料庫 – 整理目錄中的資料表和檢視等資料物件。

  • 資料表和檢視 – 資料庫中的資料物件,提供具有可理解結構描述的抽象層。它們可讓您輕鬆存取基礎資料,這些資料可能有多種格式,並位於不同位置。

從 AWS Glue 4.0 遷移至 AWS Glue 5.0

AWS Glue 4.0 中存在的所有現有任務參數和主要功能都將存在於 AWS Glue 5.0 中,但機器學習轉換除外。

已新增下列新參數:

  • --enable-lakeformation-fine-grained-access:在 AWS Lake Formation 資料表中啟用精細存取控制 (FGAC) 功能。

請參閱 Spark 遷移文件:

從 AWS Glue 3.0 遷移至 AWS Glue 5.0

注意

如需與 AWS Glue 4.0 相關的遷移步驟,請參閱 從 AWS Glue 3.0 遷移至 AWS Glue 4.0

AWS Glue 3.0 中存在的所有現有任務參數和主要功能都將存在於 AWS Glue 5.0 中,但機器學習轉換除外。

從 AWS Glue 2.0 遷移至 AWS Glue 5.0

注意

如需與 AWS Glue 4.0 相關的遷移步驟,以及 3.0 和 4.0 AWS Glue 版之間的遷移差異清單,請參閱 從 AWS Glue 3.0 遷移至 AWS Glue 4.0

另請注意 3.0 和 2.0 AWS Glue 版之間的下列遷移差異:

  • 除了機器學習轉換之外, AWS Glue 2.0 中存在的所有現有任務參數和主要功能都將存在於 AWS Glue 5.0 中。

  • 單獨的數個 Spark 變更可能需要修改指令碼,以確保沒有被引用刪除的功能。例如,Spark 3.1.1 和更新版本不會啟用 Scala 未輸入 UDFs但 Spark 2.4 會允許它們。

  • 不支援 Python 2.7。

  • 現有 AWS Glue 2.0 任務中提供的任何額外 jar 都可能會導致相互衝突的相依性,因為有幾個相依性有升級。您可以避免 classpath 與--user-jars-first任務參數衝突。

  • 變更從 parquet 檔案載入/儲存時間戳記的行為。有關更多詳細資訊,請參閱從 Spark SQL 3.0 升級到 3.1。

  • 驅動程式/執行器組態的不同 Spark 任務平行處理。您可以傳遞任務引數來調整--executor-cores任務平行處理。

Connector 和 JDBC 驅動程式遷移 for AWS Glue 5.0

如需已升級的 JDBC 和資料湖連接器版本,請參閱:

下列變更適用於 Glue 5.0 附錄中識別的連接器或驅動程式版本。

Amazon Redshift

請注意下列變更:

  • 新增對三部分資料表名稱的支援,以允許連接器查詢 Redshift 資料共用資料表。

  • 更正 Spark 的映射ShortType以使用 Redshift,SMALLINT而不是INTEGER更符合預期的資料大小。

  • 新增對 Amazon Redshift Serverless 自訂叢集名稱 (CNAME) 的支援。

Apache Hudi

請注意下列變更:

  • 支援記錄層級索引。

  • 支援自動產生記錄金鑰。現在您不需要指定記錄金鑰欄位。

Apache Iceberg

請注意下列變更:

  • 使用 支援精細存取控制 AWS Lake Formation。

  • 支援分支和標記,這些分支和標記稱為具有其獨立生命週期的快照參考。

  • 已新增變更日誌檢視程序,該程序會產生檢視,其中包含在指定期間或特定快照之間對資料表所做的變更。

Delta Lake

請注意下列變更:

  • 支援 Delta Universal Format (UniForm),可透過 Apache Iceberg 和 Apache Hudi 無縫存取。

  • 支援實作Merge-on-Read範例的刪除向量。

AzureCosmos

請注意下列變更:

  • 新增階層分割區金鑰支援。

  • 新增了將自訂結構描述與 StringType (原始 json) 用於巢狀屬性的選項。

  • 新增了組態選項spark.cosmos.auth.aad.clientCertPemBase64,以允許 搭配憑證使用 SPN (ServicePrincipal 名稱) 身分驗證,而非用戶端秘密。

如需詳細資訊,請參閱 Azure Cosmos 資料庫 Spark 連接器變更日誌

Microsoft SQL Server

請注意下列變更:

  • 預設會啟用 TLS 加密。

  • 當 encrypt = false 但伺服器需要加密時,會根據trustServerCertificate連線設定驗證憑證。

  • aadSecurePrincipalId 和 已aadSecurePrincipalSecret棄用。

  • getAADSecretPrincipalId API 已移除。

  • 新增擷取 時對 SQL_Variant 資料類型的支援DateTimeOffset

  • 指定領域時新增了 CNAME 解析。

MongoDB

請注意下列變更:

  • 支援使用 Spark 結構化串流的微型批次模式。

  • 支援 BSON 資料類型。

  • 新增了在使用微型批次或連續串流模式時讀取多個集合的支援。

    • 如果collection組態選項中使用的集合名稱包含逗號,Spark Connector 會將其視為兩個不同的集合。若要避免這種情況,您必須在逗號前面加上反斜線 (\) 來逸出逗號。

    • 如果collection組態選項中使用的集合名稱為「*」,Spark Connector 會將其解譯為掃描所有集合的規格。若要避免這種情況,您必須在星號前面加上反斜線 (\) 來逸出星號。

    • 如果collection組態選項中使用的集合名稱包含反斜線 (\),Spark Connector 會將反斜線視為逸出字元,這可能會變更解譯值的方式。若要避免這種情況,您必須在反斜線前面使用另一個反斜線來逸出反斜線。

如需詳細資訊,請參閱適用於 Spark 版本備註的 MongoDB 連接器

Snowflake

請注意下列變更:

  • 引進了新trim_space參數,您可以在儲存到 Snowflake 資料表時,用來自動修剪StringType資料欄的值。預設:false

  • 根據預設,在工作階段層級停用 abort_detached_query 參數。

  • 移除使用 OAUTH 時SFUSER參數的需求。

  • 已移除進階查詢下推功能。此功能的替代方案可供使用。例如,使用者可以直接從 Snowflake SQL 查詢載入資料,而不是從 Snowflake 資料表載入資料。

如需詳細資訊,請參閱 Snowflake Connector for Spark 版本備註

附錄 A:值得注意的相依性升級

以下是相依性升級:

相依性 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 8 8 8 8
Spark 3.5.2-amzn-1 3.3.0-amzn-1 3.1.1-amzn-0 2.4.3 2.4.3
Hadoop 3.4.0-amzn-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 2.12 2.11 2.11
Jackson 2.15.2 2.12 2.12 2.11 2.11
Hive 2.3.9-amzn-4 2.3.9-amzn-2 2.3.7-amzn-4 1.2 1.2
EMRFS 2.66.0 2.54.0 2.46.0 2.38.0 2.30.0
Json4s 3.7.0-M11 3.7.0-M11 3.6.6 3.5.x 3.5.x
Arrow 12.0.1 7.0.0 2.0.0 0.10.0 0.10.0
AWS Glue Data Catalog 用戶端 4.2.0 3.7.0 3.0.0 1.10.0 N/A
AWS 適用於 Java 的 SDK 2.28.8 1.12 1.12
Python 3.11 3.10 3.7 2.7 和 3.6 2.7 和 3.6
Boto 1.34.131 1.26 1.18 1.12 N/A
EMR DynamoDB 連接器 5.6.0 4.16.0

附錄 B:JDBC 驅動程式升級

以下是 JDBC 驅動程式升級:

驅動程式 JDBC 驅動程式 AWS Glue 5.0 版 JDBC 驅動程式 AWS Glue 4.0 版 JDBC 驅動程式 in AWS Glue 3.0 版 過去版本的 JDBC 驅動程式 AWS Glue 版本
MySQL 8.0.33 8.0.23 8.0.23 5.1
Microsoft SQL Server 10.2.0 9.4.0 7.0.0 6.1.0
Oracle 資料庫 23.3.0.23.09 21.7 21.1 11.2
PostgreSQL 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.16

redshift-jdbc41-1.2.12.1017

redshift-jdbc41-1.2.12.1017

SAP Hana 2.20.17 2.17.12
Teradata 20.00.00.33 20.00.00.06

附錄 C:連接器升級

以下是連接器升級:

驅動程式 AWS Glue 5.0 版連接器 AWS Glue 4.0 中的連接器版本 AWS Glue 3.0 版連接器
EMR DynamoDB 連接器 5.6.0 4.16.0
Amazon Redshift 6.3.0 6.1.3
OpenSearch 1.2.0 1.0.1
MongoDB 10.4.0 10.0.4 3.0.0
Snowflake 3.0.0 2.12.0
Google BigQuery 0.32.2 0.32.2
AzureCosmos 4.33.0 4.22.0
AzureSQL 1.3.0 1.3.0
Vertica 3.3.5 3.3.5

附錄 D:開啟資料表格式升級

以下是開放資料表格式升級:

OTF AWS Glue 5.0 版連接器 AWS Glue 4.0 中的連接器版本 AWS Glue 3.0 版連接器
Hudi 0.15.0 0.12.1 0.10.1
Delta Lake 3.2.1 2.1.0 1.0.0
Iceberg 1.6.1 1.0.0 0.13.1
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。