共用方式為


關於 Cube 資料分割

 

發行︰ 2016年7月

適用於: System Center 2012 SP1 - Service Manager、System Center 2012 R2 Service Manager、System Center 2012 - Service Manager

Cube 中的每個量值群組會分成幾個資料分割,而資料分割會定義載入量值群組的部分事實資料。 SQL Server 2008 R2 Standard Edition 上的 SQL Server Analysis Services (SSAS) 只允許每個量值群組有一個資料分割,而 Enterprise Edition 則允許多個資料分割。 使用者完全察覺不到資料分割的存在,不過資料分割對於效能和延展性有重要的影響。 例如,資料分割可以分開和並行處理, 且可各自擁有不同的彙總設計 (但 System Center 2012 – Service Manager並未實作此點)。 您可以在不影響量值群組的所有其他資料分割的情況下,重新處理分割。 此外,SSAS 會自動只掃描包含查詢所需資料的資料分割,有助於大幅提升查詢效能。

Cube 資料分割會在每次資料倉儲維護作業執行時進行,預設為每小時一次。 執行的特定處理序模組名為 ManageCubePartitions。 此模組永遠在 CreateMartPartitions 步驟之後執行。 此相依性資料儲存在 infra.moduletriggercondition 資料表中。

處理資料分割的主要動態連結程式庫 (DLL) 位於倉儲公用程式 DLL (Microsoft.EnterpriseManagement.Warehouse.Utility) 的 PartitionUtil 類別中。 具體來說,此類別中有一個 ManagePartitions() 方法會處理所有資料分割維護。 資料倉儲維護 DLL (Microsoft.EnterpriseManagement.Warehouse.Maintenance) 和資料倉儲線上分析處理 (OLAP) DLL (Microsoft.EnterpriseManagement.Warehouse.Olap) 都會在維護和 Cube 部署時呼叫 Microsoft.EnterpriseManagement.Warehouse.Utility 來處理資料分割。 這就是為什麼實際資料分割處理要在通用倉儲公用程式 DLL 中,目的是要避免重複的邏輯或程式碼。

Cube 資料分割維護會執行下列工作:

  • 建立資料分割

  • 刪除資料分割

  • 更新資料分割界限

為了執行這項作業,系統會讀取 etl.TablePartition 這個結構化查詢語言 (SQL) 資料表,判斷已為量值群組建立的所有事實資料分割。 這時會執行下列動作:

  1. 針對 Cube 中的每個量值群組開始 Cube 處理

  2. 從 etl.TablePartition 資料表取得量值群組的所有資料分割

  3. 刪除量值群組中存在但在 etl.TablePartition 資料表中遺失的任何資料分割

  4. 新增已建立但只存在於 etl.TablePartition 資料表中的任何新資料分割

  5. 將每個資料分割與 etl.TablePartition 資料表中的 RangeStartDate 和 RangeEndDate 比對,更新可能已變更的任何資料分割

請注意下列與 Cube 處理相關的幾點:

  • 只有以事實為目標的量值群組才會在 SQL Server 2008 R2 Standard Edition 中包含多個資料分割。 根據預設,所有量值群組和維度都只包含一個資料分割。 因此,資料分割沒有任何界限條件。

  • 資料分割界限是使用以日期索引鍵為基礎的查詢繫結定義,而日期索引鍵會比對 etl.TablePartition 資料表中對應事實資料分割的日期索引鍵。

另請參閱

瞭解 OLAP Cube