計算組態建議
本文包含與計算組態相關的建議和最佳做法。
如果您的工作負載受支援,Databricks 建議使用無伺服器計算,而不是設定您自己的計算資源。 無伺服器計算是最簡單且最可靠的計算選項。 它不需要任何組態、永遠可使用,並根據您的工作負載進行縮放。 無伺服器計算適用於筆記本、工作和差異即時資料表。 請參閱連線至無伺服器計算。
此外,資料分析師可以使用無伺服器 SQL 倉儲來查詢和探索 Databricks 上的資料。 請參閱什麼是無伺服器 SQL 倉儲?。
使用計算原則
如果您要從頭開始建立新的計算,則 Databricks 建議使用計算原則。 計算原則可讓您建立專為特定用途設計的預先設定的計算資源,例如個人計算、共用計算、進階使用者和工作。 原則會限制您在設定計算設定時需要做出的決策。
如果您無權存取原則,請連絡您的工作區系統管理員。請參閱預設原則和原則系列。
計算調整大小考量
注意
下列建議假設您的叢集建立不受限制。 工作區系統管理員應僅將此權限授與進階使用者。
人們通常會就背景工作數目方面考量計算大小,但還有其他重要因素需要考量:
- 執行程式的內核總數 (計算):所有執行程式的內核總數。 這決定了計算的平行處理原則上限。
- 執行程式總記憶體數:所有執行程式的總 RAM 數量。 這決定了在將資料溢寫至磁碟之前,記憶體中可以儲存的資料量。
- 執行程式本機儲存體:本機磁碟儲存體的類型和數量。 本機磁碟主要用於在隨機播放和快取期間的溢寫情況。
其他考量包括背景工作角色執行個體類型和大小,這也會影響上述因素。 調整計算大小時,請考慮下列事項:
- 工作負載將消耗多少資料?
- 工作負載的計算複雜度如何?
- 從何處讀取資料?
- 資料在外部儲存體中是如何分割的?
- 需要多少平行處理原則?
回答這些問題有助於根據工作負載確定最佳計算組態。
背景工作角色數目與背景工作角色執行個體類型的大小這兩者之間需要一個平衡。 設定具有兩個背景工作角色 (每個背景工作角色具有 16 個核心和 128 GB RAM) 的計算,及設定具有 8 個背景工作角色 (每個背景工作角色具有 4 個核心和 32 GB RAM) 的計算具有相同的計算和記憶體。
計算組態範例
下列範例根據特定類型的工作負載顯示計算建議。 這些範例還包括要避免的組態,以及這些組態不適用於工作負載類型的原因。
注意
本節中的所有範例 (除了機器學習訓練之外) 都可以受益於使用無伺服器計算,而不是啟動新的計算資源。 如果您的工作負載在無伺服器上不受支援,則請使用下列建議來協助設定計算資源。
資料分析
資料分析師通常執行需要來自多個分割的資料的處理,從而導致許多隨機作業。 具有較少數目的較大節點的計算資源可以減少執行這些隨機所需的網路和磁碟 I/O。
具有大型 VM 類型的單一節點計算可能是最佳選擇,尤其是對於單一分析師而言。
分析工作負載可能需要重複讀取相同的資料,因此建議的節點類型是在啟用磁碟快取後進行最佳化的儲存體或具有本機儲存體的執行個體。
建議用於分析工作負載的其他功能包括:
- 啟用自動終止,以確保計算在非使用狀態期間之後終止。
- 請考慮根據分析師的一般工作負載啟用自動縮放。
基本批次 ETL
不需要進行廣泛轉換 (例如聯結或彙總) 的簡單批次 ETL 工作通常受益於 Photon。 因此,請選取支援 Photon 的一般用途執行個體。
對記憶體和儲存體需求較低的執行個體可能會比其他背景工作角色類型節省成本。
複雜批次 ETL
對於複雜的 ETL 工作 (例如需要跨多個資料表聯合和聯結的工作),Databricks 建議使用較少的背景工作角色來減少隨機作業的資料量。 為了補償背景工作角色數量減少的影響,請增加執行個體的大小。
複雜的轉換可能會需要大量計算。 如果您發現嚴重的磁碟溢寫或 OOM 錯誤,請增加執行個體上的可用記憶體數量。
或者,使用集區來減少計算啟動時間,並減少執行工作管線時的總執行時間。
訓練機器學習模型
若要訓練機器學習模型,Databricks 建議使用個人計算原則建立計算資源。
您應使用具有大型節點類型的單一節點計算,透過訓練機器學習模型進行初始實驗。 減少節點數可降低隨機作業的影響。
新增更多背景工作角色有助於實現穩定性,但應避免由於隨機處理資料額外負荷而新增過多背景工作角色。
建議的背景工作角色類型是在啟用磁碟快取後進行最佳化的儲存體或具有本機儲存體的執行個體,以考慮對相同資料的重複讀取並啟用訓練資料的快取。
建議用於機器學習工作負載的其他功能包括:
- 啟用自動終止,以確保計算在非使用狀態期間之後終止。
- 使用集區,允許將計算限制為預先核准的執行個體類型。
- 確保使用原則的計算組態一致。