次の方法で共有


レッスン 11:パーティションの作成

このレッスンでは、パーティションを作成して Internet Sales テーブルをより小さな論理部分に分割し、他のパーティションと分離して処理 (更新) できるようにします。 既定では、モデルに含めるすべてのテーブルには、テーブルのすべての列と行を含む 1 つのパーティションがあります。 Internet Sales テーブルでは、データを年で除算します。テーブルの 5 年間ごとに 1 つのパーティション。 これにより、各パーティションを個別に処理できるようにします。 詳細については、「 パーティション (SSAS テーブル)」を参照してください。

このレッスンの推定所要時間: 15 分

前提条件

このトピックは、表形式モデルのチュートリアルの一部であり、チュートリアルでの順番に従って実行する必要があります。 このレッスンの実習を行う前に、前のレッスン「 レッスン 10: 階層の作成」を完了している必要があります。

パーティションの作成

Internet Sales テーブル内にパーティションを作成するには

  1. モデル デザイナーで [Internet Sales] テーブルをクリックし、 [テーブル] メニュー、 [パーティション]の順にクリックします。

    [パーティション マネージャー] ダイアログ ボックスが表示されます。

  2. [ パーティション マネージャー ] ダイアログ ボックスの [ パーティション] で、 Internet Sales パーティションをクリックします。

  3. [ パーティション名] で、名前を に Internet Sales 2005変更します。

    ヒント

    次の手順に進む前に、[テーブルのプレビュー] ウィンドウの列名が、モデル テーブル (チェックされている) に含まれている列を、ソースの列名で表示していることに注意してください。 これは、[テーブルのプレビュー] ウィンドウでは、モデル テーブルからではなく、ソース テーブルから取得された列が表示されるためです。

  4. プレビュー ウィンドウの右上にある [クエリ エディター] ボタンを選択します。

    特定の期間内の行だけをパーティションに含めたいので、WHERE 句を含める必要があります。 WHERE 句は、SQL ステートメントによってのみ作成できます。

  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'))  
    

    このステートメントは、WHERE 句で指定されているように、OrderDate が 2005 年度に該当する行のすべてのデータをパーティションに含めるよう指定しています。

  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 ステートメントで、WHERE 句を次の内容に置き換えて、2009 年の行だけがパーティションに含まれるようにします。

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

パーティションの処理

[パーティション マネージャー] ダイアログ ボックスで、新たに作成した各パーティションのパーティション名の隣にアスタリスク (*) が表示されます。 これは、パーティションがまだ処理 (更新) されていないことを示します。 新しいパーティションを作成したら、"パーティションの処理" または "テーブルの処理" 操作を実行して、それらのパーティション内のデータを更新する必要があります。

Internet Sales パーティションを処理するには

  1. [OK] をクリックし、 [パーティション マネージャー] ダイアログ ボックスを閉じます。

  2. モデル デザイナーで [Internet Sales] テーブルをクリックし、 [モデル] メニューをクリックした後、 [処理] (更新) をポイントし、 [パーティションの処理]をクリックします。

  3. [パーティションの処理] ダイアログ ボックスで、 [モード][既定の処理]に設定されていることを確認します。

  4. 作成した 5 つのパーティションのそれぞれについて、 [Process] 列のチェックボックスを選択し、[OK] をクリックします。

    権限借用資格情報の入力を求められた場合は、レッスン 2 の手順 6. で指定した、Windows のユーザー名とパスワードを入力します。

    [ データ プロセス ] ダイアログ ボックスが表示され、各パーティションのプロセスの詳細が表示されます。 転送される行数はパーティションごとに異なります。 これは、各パーティションに、SQL ステートメントの WHERE 句で指定された年の行が含められるためです。 2010 年についてはデータがありません。

次の手順

このチュートリアルを続行するには、次のレッスン「 レッスン 12: ロールの作成」に進んでください。