第 11 課:建立資料分割
在這一課,您將建立資料分割,以便將 [網際網路銷售] 資料表分成更小的邏輯部分,讓其他資料分割能夠單獨處理 (重新整理)。 根據預設,您包含在模型中的每個資料表都有一個資料分割,其中包含所有資料表的資料行和資料列。 針對 [網際網路銷售] 資料表,我們想要將資料除以年份;每個資料表的五年各有一個分割區。 接著,每個資料分割就可以單獨處理。 若要深入瞭解,請參閱 SSAS 表格式 (分割) 。
完成本課程的估計時間: 15 分鐘
必要條件
本主題是表格式模型教學課程的一部分,請依序完成。 在執行本課中的工作之前,您應已完成上一課: 第 10 課:建立階層。
建立資料分割
在 [網際網路銷售額] 資料表中建立資料分割
在模型設計師中,依序按一下 [網際網路銷售] 資料表、[資料表] 功能表和 [資料分割]。
[資料分割管理員] 對話方塊隨即開啟。
在 [ 資料分割管理員] 對話方塊的 [ 資料分割] 中,按一下 [ 網際網路銷售] 資料分割。
在 [資料分割名稱] 中,將名稱變更為
Internet Sales 2005
。提示
在繼續進行下一步之前,您會發現 [資料表預覽] 視窗中的資料行名稱是以來源的資料行名稱顯示模型資料表中包含的資料行 (已核取)。 這是因為 [資料表預覽] 視窗是從來源資料表顯示資料行,而不是從模型資料表。
選取位於預覽視窗右側上方的 [查詢編輯器] 按鈕。
由於您希望資料分割只包含特定期間內的資料列,因此必須包含 WHERE 子句。 您只能使用 SQL 陳述式建立 WHERE 子句。
在 [SQL 陳述式] 欄位中貼入下列陳述式,以取代現有的陳述式:
SELECT [dbo].[FactInternetSales].[ProductKey], [dbo].[FactInternetSales].[CustomerKey], [dbo].[FactInternetSales].[PromotionKey], [dbo].[FactInternetSales].[CurrencyKey], [dbo].[FactInternetSales].[SalesTerritoryKey], [dbo].[FactInternetSales].[SalesOrderNumber], [dbo].[FactInternetSales].[SalesOrderLineNumber], [dbo].[FactInternetSales].[RevisionNumber], [dbo].[FactInternetSales].[OrderQuantity], [dbo].[FactInternetSales].[UnitPrice], [dbo].[FactInternetSales].[ExtendedAmount], [dbo].[FactInternetSales].[UnitPriceDiscountPct], [dbo].[FactInternetSales].[DiscountAmount], [dbo].[FactInternetSales].[ProductStandardCost], [dbo].[FactInternetSales].[TotalProductCost], [dbo].[FactInternetSales].[SalesAmount], [dbo].[FactInternetSales].[TaxAmt], [dbo].[FactInternetSales].[Freight], [dbo].[FactInternetSales].[CarrierTrackingNumber], [dbo].[FactInternetSales].[CustomerPONumber], [dbo].[FactInternetSales].[OrderDate], [dbo].[FactInternetSales].[DueDate], [dbo].[FactInternetSales].[ShipDate] FROM [dbo].[FactInternetSales] WHERE (([OrderDate] >= N'2005-01-01 00:00:00') AND ([OrderDate] < N'2006-01-01 00:00:00'))
這個陳述式會指定資料分割應包含 OrderDate 為 2005 日曆年度之資料列中的所有資料,如 WHERE 子句中所指定。
按一下 [驗證] 。
請注意,此時會顯示一個警告,指出特定資料行不存在來源中。 這是因為在 第 3 課:重新命名資料行中,您已將模型中 Internet Sales 資料表中的資料行重新命名為與來源的相同資料行不同。
在 Internet Sales 資料表中建立 2006 年的分割區
在 [ 資料分割管理員] 對話方塊的 [ 資料分割] 中,按一下您剛才建立的
Internet Sales 2005
分割區,然後按一下 [ 複製]。在 [資料分割名稱]中,輸入
Internet Sales 2006
。在 SQL 語句中,為了讓分割區只包含 2006 年的資料列,請將 WHERE 子句取代為下列專案:
WHERE (([OrderDate] >= N'2006-01-01 00:00:00') AND ([OrderDate] < N'2007-01-01 00:00:00'))
在 Internet Sales 資料表中建立 2007 年的分割區
在 [資料分割管理員] 對話方塊中,按一下 [複製]。
在 [資料分割名稱]中,輸入
Internet Sales 2007
。在[切換至] 中,選取[查詢編輯器]。
在 SQL 語句中,為了讓分割區只包含 2007 年的資料列,請將 WHERE 子句取代為下列專案:
WHERE (([OrderDate] >= N'2007-01-01 00:00:00') AND ([OrderDate] < N'2008-01-01 00:00:00'))
在 Internet Sales 資料表中建立 2008 年的分割區
在 [資料分割管理員] 對話方塊中,按一下 [新增]。
在 [資料分割名稱]中,輸入
Internet Sales 2008
。在[切換至] 中,選取[查詢編輯器]。
在 SQL 語句中,為了讓分割區只包含 2008 年的資料列,請將 WHERE 子句取代為下列專案:
WHERE (([OrderDate] >= N'2008-01-01 00:00:00') AND ([OrderDate] < N'2009-01-01 00:00:00'))
若要在網際網路銷售資料表中建立 2009 年度的資料分割
在 [資料分割管理員] 對話方塊中,按一下 [新增]。
在 [資料分割名稱]中,輸入
Internet Sales 2009
。在[切換至] 中,選取[查詢編輯器]。
在 SQL 陳述式中,將 WHERE 子句取代為下列子句,以便讓資料分割只包含 2009 年度的資料列:
WHERE (([OrderDate] >= N'2009-01-01 00:00:00') AND ([OrderDate] < N'2010-01-01 00:00:00'))
處理資料分割
在 [資料分割管理員] 對話方塊中,您會發現剛才建立的每個新資料分割名稱旁邊都有星號 (*)。 這表示資料分割尚未處理 (重新整理)。 當您建立新的資料分割時,應執行 [處理資料分割] 或 [處理資料表] 作業,重新整理這些資料分割中的資料。
處理網際網路銷售資料分割
按一下 [確定] 關閉 [資料分割管理員] 對話方塊。
在模型設計師中,依序按一下 [網際網路銷售] 資料表和 [模型] 功能表,然後指向 [處理] (重新整理),再按一下 [處理資料分割]。
在 [處理資料分割] 對話方塊中,確認 [模式] 設定為 [處理預設]。
對於您建立的五個分割區,將 [處理]資料行的核取方塊全部選取,然後按一下 [確定]。
如果系統提示您輸入模擬認證,請輸入您在第 2 課的步驟 6 中指定的 Windows 使用者名稱和密碼。
[ 資料處理程式] 對話方塊隨即出現,並顯示每個資料分割的進程詳細資料。 請注意,傳送給每個分割區的資料列數目都不同。 這是因為每個資料分割只包含 SQL 陳述式中的 WHERE 子句所指定年度的資料列。 2010 年則沒有資料。
後續步驟
若要繼續進行本教學課程,請前往下一課: 第 12 課:建立角色。