您可以為量值群組建立其他分割區,以改善處理效能。 擁有多個分割區可以讓您將事實資料分配到本機和遠端伺服器上的對應實體數據檔案中。 在 Analysis Services 中,分割區可以獨立且平行處理,讓您更能控制伺服器上的處理工作負載。
您可以在模型設計期間或在使用 SQL Server Management Studio 或 XMLA 部署解決方案之後,在 SQL Server Data Tools 中建立數據分割。 我們建議您只選擇一種方法。 如果您交替使用不同的工具,您可能會發現,當您後續從 SQL Server Data Tools 重新部署解決方案時,先前在 SQL Server Management Studio 中對已部署資料庫所做的變更會被覆寫。
開始之前
檢查您是否有商業智慧版或企業版。 Standard Edition 不支援多個分割區。 若要檢查版本,請以滑鼠右鍵按兩下 SQL Server Management Studio 中的伺服器節點,然後選擇 [ 報表 | 一般]。 如需功能可用性的詳細資訊,請參閱 SQL Server 2014 版本支援的功能。
從一開始,請務必瞭解,如果您想要稍後合併分割區,就必須共用相同的匯總設計。 只有在數據分割具有相同的匯總設計和儲存模式時,才能合併數據分割。
小提示
探索數據源檢視 (DSV) 中的數據,以瞭解您要分割的數據範圍和深度。 例如,如果依日期分割,您可以在日期數據行上排序,以判斷每個分割區的上限和下限。
選擇方法
建立數據分割時最重要的考慮是分割數據,讓沒有任何重複的數據列。 數據必須儲存在一個分區中,而且只有一個分區,以避免重複計算任何資料列。 因此,依 DATE 進行分割很常見,因此您可以定義每個分割區之間的清楚界限。
您可以使用任一技術,將事實數據分散到多個分割區。 下列技術可用來分割數據。
| 技巧 | 建議 |
|---|---|
| 使用 SQL 查詢來分割事實數據 | 分區可以通過 SQL 查詢獲取。 在處理期間,SQL 查詢是擷取數據。 查詢的 WHERE 子句會提供篩選來分割每個分割區的數據。 Analysis Services 會為您產生查詢,但您必須填入 WHERE 子句,才能正確分割數據。 這種方法的主要優點是輕鬆分割單一源數據表的數據。 如果所有源數據都是來自大型事實數據表,您可以建置查詢,以將該數據篩選成離散分割區,而不需要在 [數據源檢視] 中建立其他數據結構。 其中一個缺點是使用查詢會中斷數據分割與 DSV 之間的系結。 如果您稍後更新 Analysis Services 專案中的 DSV,例如將數據行新增至事實數據表,則必須手動編輯每個分割區的查詢,以包含新的數據行。 接下來討論的第二種方法沒有這種缺點。 |
| 使用 DSV 中的數據表來分割事實數據 | 您可以將分割區系結至 DSV 中的數據表、具名查詢或檢視。 作為分割區的基礎,這三者在功能上都相等。 整個資料表、具名查詢或檢視會將所有資料提供給單一分割區。 使用數據表、檢視或具名查詢會將所有數據選取邏輯放在 DSV 中,這在一段時間內更容易管理和維護。 這種方法的一個重要優點是會保留數據表系結。 如果您稍後更新源數據表,則不需要修改使用該數據表的分割區。 其次,所有的數據表、具名查詢和視圖都位於同一個工作區中,這使得更新比必須單獨開啟和編輯分區查詢更方便。 |
選項 1:篩選多個分割區的事實數據表
若要建立多個分割區,首先修改默認數據分割的 Source 屬性。 根據預設,量值群組會使用系結至 DSV 中單一數據表的單一分割區來建立。 在您可以新增更多分割區之前,必須先修改原始分割區,使其只包含部分事實數據。 接著,您可以繼續建立其他分割區來儲存其餘的數據。
建構篩選,讓數據不會在分割區之間重複。 分區的篩選指定了在分區中使用的事實表中的數據。 重要的是,Cube 的每個分割的篩選都必須從事實表中擷取互斥的數據集。 如果數據出現在多個分割區中,相同的事實數據可能會重複計算。
在 SQL Server Data Tools 的 [方案總管] 中,按兩下 Cube 以開啟 Cube 設計師,然後按一下 資料分割 索引標籤。
展開正在添加分割的度量群組。 根據預設,每個量值群組都有一個分割區,系結至 DSV 中的事實數據表。
在 [來源] 欄位中,按瀏覽(...) 按鈕以開啟 [分割來源] 對話框。
在 [系結類型] 中,選取 [查詢系結]。 選取數據的 SQL 查詢會自動出現。
在底部的 WHERE 子句中,新增篩選來分割此分割區的數據。
WHERE 子句語法的範例包括
WHERE OrderDateKey >= '20060101'或WHERE OrderDateKey BETWEEN '20051001' AND '20051201'。 如需其他範例,請參閱 WHERE (Transact-SQL) 。請注意,下列篩選條件在每個集合內互斥:
設定 1: “銷售年份” = 2012
“銷售年份” = 2013設定 2: “Continent” = 'NorthAmerica'
“Continent” = 'Europe'
“Continent” = 'SouthAmerica'設定 3: “Country” = '美國'
“Country” = 'Mexico'
(“國家/地區” <> 'USA' AND “Country” <> '墨西哥')按兩下 [檢查 ] 以檢查語法錯誤,然後按兩下 [ 確定]。
重複上述步驟以建立剩餘的數據分割,每次修改 WHERE 子句以選取下一個數據配量。
部署解決方案或處理分割區以載入數據。 請確保處理所有分割區。
流覽 Cube 以確認傳回正確的數據。
擁有使用多個量值群組的量值群組之後,您可以在 SQL Server Management Studio 中建立其他分割區。 在 measure 群組下,以滑鼠右鍵點擊 [Partitions 資料夾],然後選取 [新增分割] 以啟動精靈。
備註
您可以使用相同的查詢,在 DSV 中建立名稱查詢,然後在具名查詢上建立數據分割,而不是篩選數據分割。
選項 2:使用數據表、檢視或具名查詢
如果 DSV 已將事實組織成個別數據表(例如,依年份或季),您可以根據個別數據表建立分割區,其中每個分割區都有自己的數據源數據表。 這基本上是量值群組預設分割的方式,但在多個分割區的情況下,您會將原始分割區分成多個分割區,並將每個新的分割區對應至提供數據的數據源數據表。
檢視和具名查詢的功能相當於數據表,也就是說,這三個物件都是在 DSV 中定義,並使用 [數據分割來源] 對話方塊中的 [數據表系結] 選項系結至分割區。 您可以建立檢視或具名查詢,以產生每個分割區所需的數據區段。 如需詳細資訊,請參閱在數據源檢視中定義具名查詢(Analysis Services)。
這很重要
當您在 DSV 中為資料分割建立互斥的具名查詢時,請確保這些分割後的合併數據包含您要在 Cube 中納入的量值群組的所有數據。 請確定您不會根據量值群組的整個數據表保留預設數據分割,否則以查詢為基礎的分割區會根據完整數據表重疊查詢。
建立一或多個具名查詢,以作為分割區來源使用。 如需詳細資訊,請參閱在數據源檢視中定義具名查詢(Analysis Services)。
具名查詢必須以與量值群組相關聯的事實數據表為基礎。 例如,如果您要分割 FactInternetSales 量值群組,DSV 中的具名查詢必須在 FROM 語句中指定 FactInternetSales 數據表。
在 SQL Server Data Tools 的 [方案總管] 中,按兩下立方體以在立方體設計師中開啟,然後點選 資料分割 標籤。
展開要新增分割區的量值群組。
按兩下 [新增資料分割 ] 以啟動 [資料分割精靈]。 如果您使用系結至量值群組的事實數據表來建立具名查詢,您應該會看到您在上一個步驟中建立的每個具名查詢。
在 [指定來源資訊] 中,選擇您在上一個步驟中建立的其中一個具名查詢。 如果您沒有看到任何具名查詢,請返回 DSV 並檢查 FROM 語句。
按 [下一步] 接受每個後續頁面的預設值。
在最後一頁的 [完成精靈] 上,為分割區提供描述性名稱。
按一下完成。
重複上述步驟以建立其餘的數據分割,每次選擇不同的具名查詢來選取下一個數據配量。
部署解決方案或處理分割區以載入數據。 請務必處理所有分割區。
瀏覽 Cube 以確認返回正確的數據。
後續步驟
當您建立資料分割的互斥查詢時,請確定合併的數據分割數據包含您想要包含在 Cube 中的所有資料。
最後一個步驟是,您通常會想要移除以數據表本身為基礎的預設分割區(如果它仍然存在),否則以查詢為基礎的分割區會根據完整數據表重疊查詢。
另請參閱
數據分割 (Analysis Services - 多維度數據)遠端數據分割在 Analysis Services 中合併分割區 (SSAS - 多維度)