共用方式為


第 11 課:建立分割區

在這一課中,您將建立分割區,將因特網銷售表分割成較小的邏輯部分,這些部分可以獨立於其他分割區進行處理和重新整理。 根據預設,您在模型中所包含的每個資料表都有一個分區,其中包含所有的資料表的列和欄。 針對 [因特網銷售] 數據表,我們想要按年份將數據分割,每一年都有一個分區,共分成五個年度的分區。 然後,每個分割區都可以獨立處理。 若要深入瞭解,請參閱分割區(SSAS 表格式)。

完成本課程的估計時間: 15 分鐘

先決條件

本主題是表格式模型化教學課程的一部分,應該依序完成。 在本課程中執行工作之前,您應該已完成上一 課:第 10 課:建立階層

** 建立分區

在 Internet Sales 表中建立分區

  1. 在模型設計工具中,按一下因特網銷售資料表,然後按一下資料表功能表,然後按一下分割區

    分區管理員 對話框隨即開啟。

  2. 在 [分區管理員] 對話框中的 [分區] 中,按一下 [因特網銷售] 分區。

  3. [資料分割名稱] 中,將名稱變更為 Internet Sales 2005

    小提示

    在繼續進行下一個步驟之前,請注意 [表格預覽] 視窗中的欄位名稱會顯示包含在模型表中的欄位名稱(已勾選)及來源中的欄位名稱。 這是因為 [數據表預覽] 視窗會顯示源數據表中的數據行,而不是從模型數據表顯示。

  4. 選取預覽視窗右側的 [ 查詢編輯器 ] 按鈕。

    因為您希望分割區只包含特定期間內的那些數據列,因此您必須包含 WHERE 子句。 您只能使用 SQL 語句來建立 WHERE 子句。

  5. [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 子句中所指定。

  6. 按一下 [驗證]

    請注意,會顯示警告,指出來源中缺少特定欄位。 這是因為在 第 3 課:重新命名數據行中,您已將模型中 Internet Sales 數據表中的數據行重新命名為與來源的相同數據行不同。

在 Internet Sales 資料表中建立 2006 年的分區

  1. 分割區管理員 對話框的 分割區 中,點選您剛才建立的 Internet Sales 2005 分割區,然後點選 複製

  2. [資料分割名稱] 中,輸入 Internet Sales 2006

  3. 在 SQL 語句中,若要讓分割區只包含 2006 年的數據列,請將 WHERE 子句取代為下列專案:

    WHERE (([OrderDate] >= N'2006-01-01 00:00:00') AND ([OrderDate] < N'2007-01-01 00:00:00'))  
    

在 Internet Sales 表格中建立 2007 年的分區

  1. 在 [ 數據分割管理員] 對話框中,按兩下 [ 複製]。

  2. [資料分割名稱] 中,輸入 Internet Sales 2007

  3. [切換至] 中,選取 [查詢編輯器]。

  4. 在 SQL 語句中,若要讓分割區只包含 2007 年的數據列,請將 WHERE 子句取代為下列專案:

    WHERE (([OrderDate] >= N'2007-01-01 00:00:00') AND ([OrderDate] < N'2008-01-01 00:00:00'))  
    

在 Internet Sales 表格中建立 2008 年的分區

  1. 分割管理器 對話框中,點擊 新增

  2. [資料分割名稱] 中,輸入 Internet Sales 2008

  3. [切換至] 中,選取 [查詢編輯器]。

  4. 在 SQL 語句中,若要讓分割區只包含 2008 年的數據列,請將 WHERE 子句取代為下列專案:

    WHERE (([OrderDate] >= N'2008-01-01 00:00:00') AND ([OrderDate] < N'2009-01-01 00:00:00'))  
    

在 Internet Sales 數據表中建立 2009 年的分區

  1. 分割區管理員 對話框中,單擊 新增

  2. [資料分割名稱] 中,輸入 Internet Sales 2009

  3. [切換至] 中,選取 [查詢編輯器]。

  4. 在 SQL 語句中,若要讓分割區只包含 2009 年的數據列,請將 WHERE 子句取代為下列專案:

    WHERE (([OrderDate] >= N'2009-01-01 00:00:00') AND ([OrderDate] < N'2010-01-01 00:00:00'))  
    

進程分割區

在 [ 數據分割管理員] 對話框中,請注意您剛才建立之每個新分割區的數據分割名稱旁的星號 (*)。 這表示分割區尚未被處理或更新。 當您建立新的分割區時,應該執行進程分割區或進程數據表作業,以重新整理這些分割區中的數據。

處理網路銷售分區

  1. 按一下確定以關閉資料分割管理員對話框。

  2. 在模型設計工具中,按兩下 [因特網銷售 ] 數據表,然後按兩下 [ 模型 ] 功能表,然後指向 [ 處理 ](重新整理),然後按兩下 [ 處理數據分割]。

  3. 在 [ 行程分割區 ] 對話框中,確認 [模式 ] 設定為 [處理預設值]。

  4. 針對您所建立的五個分割區,選取 [ 處理 ] 數據行中的複選框,然後按兩下 [ 確定]。

    如果系統提示您輸入模擬認證,請輸入您在第 2 課的步驟 6 中指定的 Windows 使用者名稱和密碼。

    [ 資料處理] 對話框隨即出現,並顯示每個數據分割的進程詳細數據。 請注意,傳輸每個分割區的數據列數目不同。 這是因為每個分割區只包含 SQL 語句中 WHERE 子句中所指定年份的數據列。 2010 年沒有數據。

後續步驟

若要繼續進行本教學課程,請移至下一課:課程: 第 12 課:建立角色