選取您的 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存取控制

  • 支援 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。如需詳細資訊,請參閱 任務

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

重大變更

請注意下列重大變更:

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

  • 不支援向量化SIMDCSV讀取器

  • 不支援持續記錄至輸出日誌群組。請改用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 帳戶參與度、SAPOData ServiceNow、Slack、Snapchat Ads、Stripe、Zendesk 和 Zoho CRM 連接器。

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

請注意下列增強功能:

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

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

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

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

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

  • 為大型應用程式 (SPARK-41053) 提供更佳的 Spark 使用者介面可擴展性和驅動程式穩定性。

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

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

  • Pandas API涵蓋範圍改善 (SPARK-42882) 和 PySpark (SPARK-39405) 中的 NumPy 輸入支援。

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

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

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

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

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

  • Spark Connect (SPARK-42554) 和 (SPARK-43351) 中的 Scala 和 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-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

  • 5.0中API,選擇 UpdateJobAPI操作中的 GlueVersion 參數。

對於新任務,當您建立任務時請選擇 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

  • 5.0中API,選擇 CreateJobAPI操作中的 GlueVersion 參數。

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

遷移檢查清單

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

  • Java 17 更新

  • 【Scala】 從 v1 升級 AWS SDK到 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-untyped,UDFs但 Spark 2.4 允許它們。

  • 不支援 Python 2.7。

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

  • loading/saving of timestamps from/to parquet 檔案行為的變更。如需詳細資訊,請參閱從 Spark SQL 3.0 升級至 3.1。

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

適用於 AWS Glue 5.0 的連接器和JDBC驅動程式遷移

如需已升級的 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 伺服器

請注意下列變更:

  • 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 參數。

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

  • 已移除進階查詢下推功能。該功能的替代方案可供使用。例如,使用者可以直接從 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 版本 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
適用於 Java 的AWS 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 驅動程式 in AWS Glue 5.0 版 JDBC 驅動程式 in AWS Glue 4.0 版 JDBC 驅動程式 in AWS Glue 3.0 版 JDBC 過去版本的驅動程式 AWS Glue 版本
我的SQL 8.0.33 8.0.23 8.0.23 5.1
Microsoft SQL 伺服器 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 版連接器 連接器 in AWS Glue 4.0 版 連接器 in 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 版連接器 連接器 in AWS Glue 4.0 版 連接器 in 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.或其附屬公司。保留所有權利。