共用方式為


執行時間 1.2 (GA)

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

Microsoft Fabric Runtime 1.2 是最新的 GA 運行時間版本。 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

顯示選取運行時間版本位置的螢幕快照。

Microsoft Fabric Runtime 1.2 隨附預設層級套件的集合,包括完整的 Anaconda 安裝,以及 Java/Scala、Python 和 R 的常用連結庫。在 Microsoft Fabric 平臺中使用筆記本或作業時,會自動包含這些連結庫。 如需連結庫的完整清單,請參閱檔。 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 是一個 開放原始碼 專案,可讓您在 Data Lake 之上建置 Lakehouse 架構。 Delta Lake 提供 ACID 交易、可調整的元數據處理,並在現有 Data Lake 之上統 一串流批次 數據處理。

具體而言,Delta Lake 提供:

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

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

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

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