共用方式為


Fabric Runtime 1.2 (GA)

Microsoft Fabric 執行階段是以 Apache Spark 為基礎的 Azure 整合平臺,可執行和管理資料工程和資料科學體驗。 本文件涵蓋 Runtime 1.2 元件和版本。

Runtime 1.2 的主要元件包括:

  • Apache Spark 3.4.1
  • 操作系統:Mariner 2.0
  • Java: 11
  • Scala:2.12.17
  • Python 3.10
  • Delta Lake:2.4.0
  • R:4.2.2

提示

請一律針對目前為 Runtime 1.3 的生產工作負載使用最新的 GA 運行時間版本。

顯示選取執行階段版本位置的螢幕擷取畫面。

Microsoft Fabric Runtime 1.2 隨附預設層級套件的集合,包括完整的 Anaconda 安裝,以及 Java/Scala、Python 和 R 的常用連結庫。在 Microsoft Fabric 平臺中使用筆記本或作業時,會自動包含這些連結庫。 如需社群程式庫清單,請參閱 OpenAI 文件。 Microsoft Fabric 會定期推出 Runtime 1.2 的維護更新,並提供錯誤修正、效能增強和安全性修補程式。 保持最新狀態可確保資料處理工作的最佳效能和可靠性。

Spark 3.4.1 版的新功能和改善

Apache Spark 3.4.0 是 3.x 行中的第五個版本。 此版本由開放原始碼社群推動,已解決超過 2,600 張 Jira 票證。 它引進適用於 Spark Connect的 Python 用戶端,使用異步進度追蹤和 Python 具狀態處理來增強結構化串流。 它透過 NumPy 輸入支援擴充 Pandas API 涵蓋範圍,透過 ANSI 合規性和新的內建函式,簡化從傳統資料倉儲移轉。 它也會使用儲存體分析來改善開發生產力和偵錯能力。 此外,Runtime 1.2 是以 Apache Spark 3.4.1 為基礎,維護版本著重於穩定性修正。

重點摘要

流覽 Spark 3.4.0Spark 3.4.1,以閱讀特定 Apache Spark 版本的完整版本資訊。

新的自訂查詢最佳化

Spark 中的並行寫入支援

遇到 404 錯誤,訊息「作業失敗:指定的路徑不存在」是使用 SQL INSERT INTO 查詢在相同資料表中執行平行資料插入時常見的問題。 此錯誤可能會導致資料遺失。 我們的新功能「檔案輸出認可者演算法」可解決此問題,讓客戶能夠順暢地執行平行資料插入。

若要存取這項功能,請啟用 spark.sql.enable.concurrentWrites 功能旗標,預設從 Runtime 1.2 (Spark 3.4) 開始啟用此功能。 雖然此功能也適用於其他 Spark 3 版本,但預設不會啟用此功能。 此功能不支援平行執行 INSERT OVERWRITE 查詢,其中每個並行作業都會動態覆寫相同資料表不同分割區上的資料。 為此,Spark 提供替代功能,其可藉由 spark.sql.sources.partitionOverwriteMode 將設定設定設定為 動態來啟用。

智慧讀取,略過失敗作業的檔案

在目前的 Spark 認可項系統中,當插入資料表作業失敗但某些工作成功時,成功工作所產生的檔案會與失敗作業中的檔案並存。 這種共存可能會造成使用者混淆,因為區分屬於成功和失敗作業的檔案會變得困難。 此外,當某個作業從資料表讀取,而另一個作業同時將資料插入同一個資料表時,讀取作業可能會存取未認可的資料。 如果寫入作業失敗,讀取作業可能會處理不正確的資料。

spark.sql.auto.cleanup.enabled 標可控制我們的新功能,以解決此問題。 啟用時,Spark 會自動略過讀取在執行 spark.read 或從資料表選取查詢時尚未認可的檔案。 啟用此功能之前寫入的檔案會如往常一樣繼續讀取。

以下是可見的變更:

  • 所有檔案現在都會在其 tid-{jobID} 檔名中包含標識碼。
  • _success在順利完成作業時,通常會在輸出位置建立標記,而不是產生新的_committed_{jobID}標記。 此標記會將成功的作業標識碼與特定檔名產生關聯。
  • 我們引進了新的 SQL 命令,使用者可以定期執行以管理儲存體並清除未認可的檔案。 此命令的語法如下:
    • 若要清除特定目錄: CLEANUP ('/path/to/dir') [RETAIN number HOURS];
    • 若要清除特定資料表: CLEANUP [db_name.]table_name [RETAIN number HOURS]; 在此語法中, path/to/dir 代表需要清除的位置 URI,而 number 是代表保留期限的雙類型值。 預設的保留期限設定為七天。
  • 我們引進了稱為 spark.sql.deleteUncommittedFilesWhileListing的新組態選項,預設會設定為 false。 啟用此選項會導致在讀取期間自動刪除未認可的檔案,但此案例可能會降低讀取作業的速度。 建議在叢集閒置時手動執行清除命令,而不是啟用此旗標。

從 Runtime 1.1 移轉至 Runtime 1.2 的移轉指南

從 Apache Spark 3.3 提供電源的 Runtime 1.1 移轉至 Apache Spark 3.4 所提供的 Runtime 1.2 時,請檢閱 官方移轉指南

Delta Lake 2.4 的新功能和改善

Delta Lake 是一個開放原始碼專案,可讓您在資料湖之上組建 Lakehouse 架構。 Delta Lake 提供 ACID 交易、可調整的中繼資料處理,並且會在現有的資料湖之上統一串流批次資料處理。

具體而言,Delta Lake 提供:

  • Spark 上的 ACID 交易 :可串行化的隔離等級可確保讀取器永遠不會看到不一致的資料。
  • 可調整的中繼資料處理:使用Spark分散式處理能力來處理具有數十億個檔案之 PB 級別資料表的所有中繼資料。
  • 串流批次統一:Delta Lake 中的資料表是批次表以及串流來源和接收器。 串流資料內嵌、批次歷程記錄回填、互動式查詢全都是現成可用的工作。
  • 架構強制執行:自動處理架構變化,以避免在擷取期間插入不正確的記錄。
  • 時間移動:資料版本控制可啟用復原、完整歷程記錄稽核線索,以及可重現的機器學習實驗。
  • Upsertsdeletes:支持合併、更新和刪除作業,以啟用複雜的使用案例,例如異動資料擷取、緩時變更維度 (SCD) 作業、串流 upsert 等。

閱讀 Delta Lake 2.4 版本資訊的完整版本資訊

Java、Scala、Python 連結庫的預設層級套件

如需 Java、Scala、Python 及其各自版本之所有預設層級套件的清單,請參閱 版本資訊