このレッスンでは、Internet Sales テーブルを他のパーティションから独立して処理 (更新) できる小さな論理部分に分割するパーティションを作成します。 既定では、モデルに含めるすべてのテーブルには、テーブルのすべての列と行を含む 1 つのパーティションがあります。 Internet Sales テーブルでは、データを年ごとに分割し、テーブルの各5年間に対して1つのパーティションを作成します。 その後、各パーティションを個別に処理できます。 詳細については、「 パーティション (SSAS テーブル)」を参照してください。
このレッスンの推定所要時間: 15 分
[前提条件]
このトピックは、順番に完了する必要がある表形式モデリング チュートリアルの一部です。 このレッスンのタスクを実行する前に、前のレッスン「 レッスン 10: 階層の作成」を完了しておく必要があります。
パーティションの作成
Internet Sales テーブルにパーティションを作成するには
モデル デザイナーで、 Internet Sales テーブルをクリックし、[ テーブル ] メニューをクリックし、[ パーティション] をクリックします。
[ パーティション マネージャー ] ダイアログ ボックスが開きます。
[ パーティション マネージャー ] ダイアログ ボックスの [ パーティション] で、 Internet Sales パーティションをクリックします。
[ パーティション名] で、名前を
Internet Sales 2005に変更します。ヒント
次の手順に進む前に、[テーブル プレビュー] ウィンドウでモデル テーブルに含まれている列がソースの列名と共に表示され、チェックされていることを確認します。 これは、モデル テーブルではなく、ソース テーブルの列が [テーブル プレビュー] ウィンドウに表示されるためです。
プレビュー ウィンドウの右側のすぐ上にある [クエリ エディター] ボタンを選択します。
パーティションには特定の期間内の行のみを含める必要があるため、WHERE 句を含める必要があります。 WHERE 句は、SQL ステートメントを使用してのみ作成できます。
[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 句で指定されている 2005 暦年の OrderDate が含まれる行のすべてのデータをパーティションに含める必要があることを指定します。
[ 検証] をクリックします。
特定の列がソースに存在しないことを示す警告が表示されます。 これは、 レッスン 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'))
Internet Sales テーブルに 2009 年のパーティションを作成するには
[ パーティション マネージャー ] ダイアログ ボックスで、[ 新規] をクリックします。
[ パーティション名] に「
Internet Sales 2009」と入力します。[切り替え] で、[クエリ エディター] を選択します。
SQL ステートメントでは、パーティションに 2009 年の行のみが含まれる順序で、WHERE 句を次のように置き換えます。
WHERE (([OrderDate] >= N'2009-01-01 00:00:00') AND ([OrderDate] < N'2010-01-01 00:00:00'))
パーティションの処理
[ パーティション マネージャー ] ダイアログ ボックスで、作成した新しい各パーティションのパーティション名の横にあるアスタリスク (*) を確認します。 これは、パーティションが処理 (更新) されていないことを示します。 新しいパーティションを作成するときは、プロセス パーティションまたはプロセス テーブル操作を実行して、それらのパーティション内のデータを更新する必要があります。
インターネットセールスのパーティションを処理する方法
[ OK] を クリックして、[ パーティション マネージャー ] ダイアログ ボックスを閉じます。
モデル デザイナーで、 Internet Sales テーブルをクリックし、[ モデル ] メニューをクリックし、[ プロセス (更新)] をポイントして、[ パーティションの処理] をクリックします。
[ パーティションの処理 ] ダイアログ ボックスで、[ モード ] が [ 既定のプロセス] に設定されていることを確認します。
作成した 5 つのパーティションごとに [プロセス ] 列のチェック ボックスをオンにし、[OK] をクリック します。
偽装資格情報の入力を求められた場合は、レッスン 2 の手順 6 で指定した Windows ユーザー名とパスワードを入力します。
[ データ 処理 ] ダイアログ ボックスが表示され、各パーティションのプロセスの詳細が表示されます。 パーティションごとに異なる数の行が転送されていることに注意してください。 これは、各パーティションに SQL ステートメントの WHERE 句で指定された年の行のみが含まれているためです。 2010 年のデータはありません。
次のステップ
このチュートリアルを続けるには、次のレッスン「レッスン: レッスン 12: ロールの作成」に進んでください。