建立和管理本機分割區 (Analysis Services)
適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
您可以為量值群組建立其他分割區,以改善處理效能。 擁有多個分割區可讓您跨本機和遠端伺服器上的對應實體數據檔,配置事實數據。 在 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 2016 版本所支援 功能。
從一開始,請務必瞭解,如果您想要稍後合併分割區,就必須共用相同的匯總設計。 只有在數據分割具有相同的匯總設計和儲存模式時,才能合併數據分割。
提示
探索數據源檢視 (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 WHERE (Transact-SQL)。請注意,下列篩選條件在每個集合內互斥:
設置 價值 設定 1: “SaleYear” = 2012
“SaleYear” = 2013設定 2: “Continent” = 'NorthAmerica'
“Continent” = 'Europe'
“Continent” = 'SouthAmerica'設定 3: “Country” = 'USA'
“Country” = 'Mexico'
(“國家”<> 'USA' and “Country” <> '墨西哥')點選 「檢查 檢查語法錯誤,然後按下 [確定]。
重複上述步驟以建立剩餘的數據分割,每次修改 WHERE 子句以選取下一個數據配量。
部署解決方案或處理分割區以載入數據。 請務必處理所有分割區。
流覽 Cube 以確認傳回正確的數據。
擁有使用多個量值群組的量值群組之後,您可以在 SQL Server Management Studio 中建立其他分割區。 在量值群組下,以滑鼠右鍵按兩下 [資料夾] 資料夾,然後選取 [[新增資料分割] 以啟動精靈。
注意
您可以使用相同的查詢,在 DSV 中建立名稱查詢,然後在具名查詢上建立數據分割,而不是篩選數據分割。
選項 2:使用數據表、檢視或具名查詢
如果 DSV 已將事實組織成個別數據表(例如,依年份或季),您可以根據個別數據表建立分割區,其中每個分割區都有自己的數據源數據表。 這基本上是量值群組預設分割的方式,但在多個分割區的情況下,您會將原始分割區分成多個分割區,並將每個新的分割區對應至提供數據的數據源數據表。
檢視和具名查詢的功能相當於數據表,也就是說,這三個物件都是在 DSV 中定義,並使用 [數據分割來源] 對話方塊中的 [數據表系結] 選項系結至分割區。 您可以建立檢視或具名查詢,以產生每個分割區所需的數據區段。 如需詳細資訊,請參閱 在數據源檢視中定義具名查詢。
重要
當您在 DSV 中建立資料分割的互斥具名查詢時,請確定數據分割的合併數據報含您想要包含在 Cube 中的量值群組中的所有數據。 請確定您不會根據量值群組的整個數據表保留預設數據分割,否則以查詢為基礎的分割區會根據完整數據表重疊查詢。
建立一或多個具名查詢,以作為分割區來源使用。 如需詳細資訊,請參閱 在數據源檢視中定義具名查詢。
具名查詢必須以與量值群組相關聯的事實數據表為基礎。 例如,如果您要分割 FactInternetSales 量值群組,DSV 中的具名查詢必須在 FROM 語句中指定 FactInternetSales 數據表。
在 SQL Server Data Tools 的 [方案總管] 中,按兩下 Cube 以在 Cube 設計師中開啟它,然後按兩下 [數據分割] 索引標籤。
展開正在新增數據分割的量值群組。
按兩下 [[新增分割區] 啟動 [資料分割精靈]。 如果您使用系結至量值群組的事實數據表來建立具名查詢,您應該會看到您在上一個步驟中建立的每個具名查詢。
在 [指定來源資訊] 中,選擇您在上一個步驟中建立的其中一個具名查詢。 如果您沒有看到任何具名查詢,請返回 DSV 並檢查 FROM 語句。
按兩下 [[下一步],接受每個後續頁面的預設值。
在最後一頁的 [完成精靈] 上,為分割區提供描述性名稱。
點選 [完成] 。
重複上述步驟以建立其餘的數據分割,每次選擇不同的具名查詢來選取下一個數據配量。
部署解決方案或處理分割區以載入數據。 請務必處理所有分割區。
流覽 Cube 以確認傳回正確的數據。
下一步
當您建立資料分割的互斥查詢時,請確定合併的數據分割數據包含您想要包含在 Cube 中的所有資料。
最後一個步驟是,您通常會想要移除以數據表本身為基礎的預設分割區(如果它仍然存在),否則以查詢為基礎的分割區會根據完整數據表重疊查詢。
另請參閱
分割區 (Analysis Services - 多維度數據)
遠端分割區
Analysis Services 中的合併分割區 (SSAS - 多維度)