適用於:✅Microsoft Fabric 中的資料工程與資料科學
Microsoft Fabric 允許透過容量配置計算單位,這是一組專用的資源,可在指定時間使用。 容量會定義資源執行活動或產生輸出的能力。 不同的項目在特定時間會耗用不同的容量。 Microsoft Fabric 會透過 Fabric SKU 和試用版提供容量。 如需詳細資訊,請參閱何謂容量?。
當使用者在 Azure 上建立 Microsoft Fabric 容量時,他們會根據其分析工作負載大小來選擇容量大小。 在 Apache Spark 中,使用者每保留一個容量單位,會取得兩個 Apache Spark VCores,這是 SKU 的一部分。
一個容量單位 = 兩個Spark虛擬核心
一旦購買容量,系統管理員可以在 Microsoft Fabric 中的容量內建立工作區。 與容量相關聯的 Spark VCore 會在所有基於 Apache Spark 的項目之間共用,例如筆記型電腦、Apache Spark 作業定義,以及在這些工作區中建立的湖倉。
同步節流和佇列
Spark for Fabric 會強制執行基於核心數的節流和排隊機制,使用者可以根據所購買的 Fabric 容量 SKU 提交作業。 佇列機制是一個簡單的 FIFO 型佇列,它會檢查可用的作業位置,並在容量可供使用後自動重試作業。
當使用者提交筆記本或數據湖倉庫工作(例如 載入至表格),且因所有 Spark VCore 被同時使用而達到最大容量時,他們會因請求容量過多而收到以下錯誤訊息:
[TooManyRequestsForCapacity] HTTP Response code 430: This Spark job can't be run because you have hit a Spark compute or API rate limit. To run this Spark job, cancel an active Spark job through the Monitoring hub, or choose a larger capacity SKU or try again later.
啟用佇列時,從管線、作業排程器和Spark 作業定義觸發的筆記本作業會新增至佇列,並在容量可用時自動重試。
注意
佇列到期時間從作業提交時間設定為 24小時 。 在此期間之後,工作會從佇列中移除,而且必須手動重新提交。
網狀架構容量也會啟用 高載功能,讓您最多耗用 3× 您購買的 Spark VCore 數目。 此突增能夠藉由允許更多作業同時執行,協助改善並行處理。
注意
如果 Spark 集區已設定較高的核心計數,爆發因數會增加 Spark 虛擬核心的並行總數,而且可由單一作業利用。
換句話說, 集區組態 會決定作業可以使用的最大核心,而不只是基底 SKU 配置。
範例
如果您有具有 384 個最大 Spark VCore 且具有高載因數的F64 SKU:
- 您可以使用 最多 384 個 Spark VCore 來設定自定義或入門集區。
- 如果工作區管理員建立這類集區, 單一 Spark 作業 (例如筆記本、作業定義或 Lakehouse 作業) 可以使用所有 384 個虛擬核心。
- 範例:具有
Medium節點的集區(每個節點 8 個虛擬核心),以及 48 個最高節點 = 384 個虛擬核心。
小提示
若要最大化作業效能,請確認您的工作區集區已設定足夠的節點大小和計數。
Spark 容量 SKU 限制
| Fabric 容量 SKU | 相對應的 Power BI SKU | Spark VCore | 最大 Spark 虛擬核心與突發因數 | 佇列限制 |
|---|---|---|---|---|
| F2 | - | 4 | 20 | 4 |
| F4 | - | 8 | 24 | 4 |
| F8 | - | 16 | 48 | 8 |
| F16 | - | 32 | 96 | 16 |
| F32 | - | 64 | 192 | 32 |
| F64 | P1 | 128 | 384 | 64 |
| F128 | P2 | 256 | 768 | 128 |
| F256 | P3 | 512 | 1536 | 256 |
| F512 | P4 | 1024 | 3072 | 512 |
| F1024 | - | 2048 | 6144 | 1024 |
| F2048 | - | 4096 | 12288 | 2048 |
| 試用版容量 | P1 | 128 | 128 | 無 |
這很重要
表格僅適用於在 Fabric Capacity 上執行的 Spark 作業。 啟用自動調整計費功能后,Spark 作業會與網狀架構容量分開執行,避免高載或平滑。 Spark VCore 總數將是自動調整設定中最大容量設定的兩倍。
範例計算
- F64 SKU 提供 128 個 Spark 虛擬核心。
- 突發因數為 3,最多可支援 384 個 Spark 虛擬核心 以進行並行執行。
- 如果集區已設定完整 384 個虛擬核心, 單一作業就可以全部使用,假設沒有其他作業耗用容量。
- 範例:使用 128 個虛擬核心的 3 個作業可以同時執行,或使用 384 個虛擬核心執行 1 個作業。
注意
作業的佇列到期期間為 24 小時,之後就會取消佇列,且用戶必須重新提交執行。
Spark for Fabric 的節流未強制執行任意作業的限制,而僅基於購買的 Fabric 容量 SKU 所允許的核心數目進行調節。 預設情況下,工作錄取採用樂觀的錄取控制,根據其最低核心需求進行錄取。 深入瞭解: 工作招生和管理。
如果已為工作區選取預設集區 (Starter Pool) 選項,下表列出最大並行作業限制。
深入了解: 設定入門集區。
系統管理員可以設定其 Apache Spark 集區,以利用在容量中可用的最大 Spark VCore,包括 Fabric 為並行執行提供的突增係數 3×。 例如,具有 F64 Fabric 容量的工作區系統管理員可以設定其 Spark 集區 (入門集區或自定義集區),以使用最多 384 個 Spark VCore:
將入門集區最大節點設定為 48 個(中節點 = 每個虛擬核心 8 個),或
使用更大的節點來設定自定義集區(例如,每個 XXLarge = 64 個虛擬核心),並選擇適當的節點數量,以達到所需的容量。
透過此設定,單個 Spark 作業可以消耗全部的突發容量,這非常適合需要優先考量效能的大規模資料處理。
新增:透過管理入口網站進行作業層級爆量控制。容量系統管理員現在可透過管理入口網站中的新設定,控制是否啟用或停用作業層級爆量功能。
流覽至 [管理入口網站] → [容量設定] → [數據工程/科學] 索引標籤
使用新的「停用 Job-Level 突增」開關,用於防止單一 Spark 作業取用所有可用的突增容量
注意
當禁止作業層級突發時,Spark 引擎會強制使任何單一作業無法利用所有可用的容量(包括突發核心)。 這可確保容量仍可供並行作業使用,以改善輸送量和多用戶並行。
這項功能在多租戶或高並發環境中特別有用,其中工作負載需要在多個小組和管線之間進行平衡。 系統管理員可以根據效能是否針對最大化作業輸送量(已啟用突發)或更高的並行性和公平性(已停用突發)來調整此設定。
已啟用突增功能的範例情境(預設):大型批次筆記式作業可以在 F64 容量中使用所有 384 個 Spark 虛擬核心,假如沒有其他作業執行。
已停用突發功能:某一工作可能會限制在基礎核心限制之內(例如 F64 的 128 個 Spark VCores),以便為其他工作同時啟動留出空間。
小提示
對於具有各種作業類型(ETL、ML、Adhoc)的小組,停用作業層級高載有助於防止容量壟斷,並減少工作佇列延遲。