レッスン 11:パーティションの作成
このレッスンでは、パーティションを作成して 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 句で指定されているように、OrderDate が 2005 年度に該当する行のすべてのデータをパーティションに含めるよう指定しています。
[検証] をクリックします。
特定の列がソースに存在しないことを示す警告が表示されます。 これは、「 レッスン 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 ステートメントで、WHERE 句を次の内容に置き換えて、2009 年の行だけがパーティションに含まれるようにします。
WHERE (([OrderDate] >= N'2009-01-01 00:00:00') AND ([OrderDate] < N'2010-01-01 00:00:00'))
パーティションの処理
[パーティション マネージャー] ダイアログ ボックスで、新たに作成した各パーティションのパーティション名の隣にアスタリスク (*) が表示されます。 これは、パーティションがまだ処理 (更新) されていないことを示します。 新しいパーティションを作成したら、"パーティションの処理" または "テーブルの処理" 操作を実行して、それらのパーティション内のデータを更新する必要があります。
Internet Sales パーティションを処理するには
[OK] をクリックし、 [パーティション マネージャー] ダイアログ ボックスを閉じます。
モデル デザイナーで [Internet Sales] テーブルをクリックし、 [モデル] メニューをクリックした後、 [処理] (更新) をポイントし、 [パーティションの処理]をクリックします。
[パーティションの処理] ダイアログ ボックスで、 [モード] が [既定の処理]に設定されていることを確認します。
作成した 5 つのパーティションのそれぞれについて、 [Process] 列のチェックボックスを選択し、[OK] をクリックします。
権限借用資格情報の入力を求められた場合は、レッスン 2 の手順 6. で指定した、Windows のユーザー名とパスワードを入力します。
[ データ プロセス ] ダイアログ ボックスが表示され、各パーティションのプロセスの詳細が表示されます。 転送される行数はパーティションごとに異なります。 これは、各パーティションに、SQL ステートメントの WHERE 句で指定された年の行が含められるためです。 2010 年についてはデータがありません。
次の手順
このチュートリアルを続行するには、次のレッスン「 レッスン 12: ロールの作成」に進んでください。