AWDataWarehouseRefresh パッケージ サンプル
AWDataWarehouseRefresh サンプル パッケージでは、AdventureWorks データベースからのデータを使用して、新しい AdvWorksDWX データベースにユーザー テーブルとその内容を作成する方法について説明します。Transact-SQL スクリプトをいくつか実行してテーブルを作成した後、SQL 実行タスクをいくつか実行してテーブルの内容を作成します。
重要 : |
---|
サンプルは、学習に使用することのみを目的に提供されています。これらは、運用環境での使用を目的としたものではなく、運用環境でのテストも実施されていません。Microsoft からは、これらのサンプルについてのテクニカル サポートは提供されません。 |
必要条件
このサンプル パッケージを実行するための前提条件は次のとおりです。
- サンプル パッケージとサンプル パッケージが使用するデータ ファイルが、ローカルのハード ディスク ドライブにインストールされている。
- AdventureWorks OLTP データベースがインストールされていて、そのデータベースに対する管理権限を持っている。
- コマンド ラインからサンプル パッケージを実行する場合、SQL Server 2005 Integration Services (SSIS) がインストールされている。
- SSIS デザイナでパッケージを開いてサンプル パッケージを実行する場合、Business Intelligence Development Studio がインストールされている。
このサンプル パッケージの実行には次のファイルが必要です。
ファイル | 説明 |
---|---|
AWDWRefresh.dtsx |
サンプル パッケージです。 |
サンプルのインストール方法の詳細については、SQL Server 2005 Books Online の「Integration Services サンプル パッケージのインストール」を参照してください。SQL Server 2005 のオリジナル リリース後にリリースされた新しいサンプルを含む、サンプルの最新バージョンを入手するには、「SQL Server 2005 Samples and Sample Databases (April 2006)」を参照してください。
サンプル パッケージの場所
サンプルが既定のインストール場所にインストールされた場合、AWDataWarehouseRefresh サンプル パッケージとデータ ファイルは次のフォルダにあります。
C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\AWDataWarehouseRefresh\
メモ : |
---|
プロジェクトのインストール場所を変更した場合、パッケージの BasePath 変数と DataFilePath 変数を変更する必要があります。 |
サンプルの実行
パッケージは、dtexec ユーティリティを使用してコマンド ラインから実行することができます。または、Business Intelligence Development Studio で実行することもできます。
dtexec を使用してパッケージを実行するには
[コマンド プロンプト] ウィンドウを開きます。
ディレクトリを変更する cd コマンドを使用して、dtexec のある、C:\Program Files\Microsoft SQL Server\90\DTS\Binn にディレクトリを変更します。
次のコマンドを入力します。
dtexec /f "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\AWDataWarehouseRefresh\AWDataWarehouseRefresh\AWDWRefresh.dtsx"
Enter キーを押します。
dtexec ユーティリティを使用してパッケージを実行する方法の詳細については、SQL Server 2005 Books Online のトピック「dtexec ユーティリティ」を参照してください。
Business Intelligence Development Studio でパッケージを実行するには
Business Intelligence Development Studio を開きます。
[ファイル] メニューの [開く] をポイントし、[プロジェクト/ソリューション] をクリックします。
[ファイルの種類] を [Integration Services プロジェクト ファイル (*.dtproj)] に設定し、AWDataWarehouseRefresh フォルダを探して、AWDataWarehouseRefresh.dtproj という名前のファイルをダブルクリックします。
[ソリューション エクスプローラ]で、[SSIS パッケージ] フォルダの AWDWRefresh.dtsx を右クリックして、[パッケージの実行] をクリックします。
サンプルのコンポーネント
以下の表に、サンプルで使用されるタスク、コンテナ、データ ソースと変換先、および変換を示します。
パッケージのオブジェクトを参照するには、[制御フロー] タブでオブジェクトを選択し、Shift キーを押しながら Tab キーを押してオブジェクトごとに進みます。また、[制御フロー] のデザイン画面の右下隅にある 4 方向矢印をクリックし、次にパッケージ上でビュー ウィンドウの位置を変更して、パッケージの全体像を参照することもできます。
このパッケージでは運用データベースの例を示しているため、多数のオブジェクトとコンテナがあります。これらは論理グループに収集されています。グループを折りたたんでパッケージ全体を表示しやすくしたり、グループを展開して特定のグループにあるアイテムをよりわかりやすく表示することができます。パッケージのタスクとコンテナは、グループごとにこの位置にリストされます。
Database and Tables グループ
グループ Database and tables には、シーケンス コンテナ、Foreach ループ コンテナ、および SQL 実行タスクが含まれています。コンテナには、さらに次の表のタスクが含まれています。
要素 | 目的 |
---|---|
シーケンス コンテナ |
シーケンス コンテナ Prepare New Database には、新しいデータベースの作成とデータベース オプションの設定を行う 3 つの SQL 実行タスクが含まれています。このシーケンスの後には、Foreach ループ コンテナおよび別の SQL 実行タスクが続きます。 |
SQL 実行タスク |
SQL 実行タスク Drop database は、AdvWorksDWX の既存のインスタンスを削除します。 |
SQL 実行タスク |
SQL 実行タスク Create database は、新しいデータベース AdvWorksDWX を作成します。 |
SQL 実行タスク |
SQL 実行タスク Set database options は、ALTER DATABASE ステートメントを実行します。 |
Foreach ループ コンテナ |
Foreach ループ コンテナ Create tables には、ファイル フィルタ CreateTable-*.sql と一致するファイルから SQL ステートメントを実行する SQL 実行タスクが含まれています。 |
SQL 実行タスク |
Foreach ループで指定されたファイルから SQL ステートメントを実行して、AdvWorksDWX データベース内にテーブルを作成します。 |
SQL 実行タスク |
SQL 実行タスク Create udfMinimumDate function は、SQL ステートメントの直接入力を使用して、ユーザー定義関数を作成します。 |
Temporary Tables グループ
グループ Temporary Tables には 2 つの Foreach ループが含まれており、それぞれに、ファイル内の SQL ステートメントをループする SQL 実行タスクが含まれています。ファイルを含むフォルダの場所は、ファイル接続マネージャによって定義されます。
要素 | 目的 |
---|---|
Foreach ループ コンテナ |
Foreach ループ Drop temp tables には、ファイル フィルタ DropTempTable-*.sql と一致するファイルから SQL ステートメントを実行する SQL 実行タスクが含まれています。 |
SQL 実行タスク |
Foreach ループで指定されたファイルから SQL ステートメントを実行して、AdventureWorks データベース内の一時テーブルを削除します。 |
Foreach ループ コンテナ |
Foreach ループ Create temp tables には、ファイル フィルタ CreateTempTable-*.sql と一致するファイルから SQL ステートメントを実行する SQL 実行タスクが含まれています。 |
SQL 実行タスク |
Foreach ループで指定されたファイルから SQL ステートメントを実行して、AdventureWorks データベース内に一時テーブルを作成します。 |
Load Temporary Tables グループ
グループ Load temporary tables には、.csv ファイルからのデータを AdventureWorks データベース内の一時テーブルに読み込む 7 つの一括挿入タスクが含まれています。
要素 | 目的 |
---|---|
一括挿入タスク |
一括挿入タスク Bulk Insert tempProductSubcategory-ForeignNames は、データを一時テーブルに挿入します。 |
一括挿入タスク |
一括挿入タスク Bulk Insert tempProduct-ForeignNames は、データを一時テーブルに挿入します。 |
一括挿入タスク |
一括挿入タスク Bulk Insert tempStore-MinPayment は、データを一時テーブルに挿入します。 |
一括挿入タスク |
一括挿入タスク Bulk Insert tempProductCategory-ForeignNames は、データを一時テーブルに挿入します。 |
一括挿入タスク |
一括挿入タスク Bulk Insert tempCustomer-YearlyIncome は、データを一時テーブルに挿入します。 |
一括挿入タスク |
一括挿入タスク Bulk Insert tempIndividual-ForeignData は、データを一時テーブルに挿入します。 |
一括挿入タスク |
一括挿入タスク Bulk Insert tempSpecialOffer-ForeignData は、データを一時テーブルに挿入します。 |
Create Keys and Indexes グループ
グループ Create Keys and Indexes には、優先順位制約によって接続される SQL 実行タスクが含まれており、Foreach ループ コンテナも含まれています。
要素 | 目的 |
---|---|
SQL 実行タスク |
SQL 実行タスク Add Primary Keys は、AdvWorksDWX 内の新しいテーブルで主キーを作成します。 |
SQL 実行タスク |
SQL 実行タスク Add Indexes は、AdvWorksDWX 内の新しいテーブルのインデックスを作成します。 |
SQL 実行タスク |
SQL 実行タスク Add Foreign Key Constraints は、AdvWorksDWX 内の新しいテーブルに外部キー制約を追加します。 |
SQL 実行タスク |
SQL 実行タスク Drop udfMinimumDate function は、ユーザー定義関数を AdvWorksDWX から削除します。 |
Foreach ループ コンテナ |
Foreach ループ コンテナ Drop temp tables 1 には、ファイル フィルタ DropTempTable-*.sql と一致するファイルから SQL ステートメントを実行する SQL 実行タスクが含まれています。 |
SQL 実行タスク |
Foreach ループで指定されたファイルから SQL ステートメントを実行して、AdventureWorks データベースから一時テーブルを削除します。 |
グループ化されていないタスク
パッケージには、その他のグループのタスク間でデータを移動する操作を実行する、どのグループにも属さない 25 のタスクも含まれています。
要素 | 目的 |
---|---|
一括挿入タスク |
一括挿入タスク Bulk Insert FactFinance は、.csv ファイルから AdvWorksDWX 内のファクト テーブルにデータを読み込みます。 |
一括挿入タスク |
一括挿入タスク Bulk Insert DimAccount は、.csv ファイルから AdvWorksDWX 内のディメンション テーブルにデータを読み込みます。 |
一括挿入タスク |
一括挿入タスク Bulk Insert AdventureWorksDWBuildVersion は、AdvWorksDWX のデータ ウェアハウスのバージョン情報を更新します。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - DimPromotion には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローは、AdventureWorks に対するクエリを実行してプロモーションを識別し、その結果を AdvWorkDWX のディメンション テーブルに書き込みます。 |
一括挿入タスク |
一括挿入タスク Bulk Insert DimOrganization は、.csv ファイルから AdvWorksDWX 内のディメンション テーブルにデータを読み込みます。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - DimSalesReason には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローは、AdventureWorks に対するクエリを実行して販売理由を検索し、その結果を AdvWorkDWX のディメンション テーブルに書き込みます。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - DimReseller には、OLE DB ソース、データ変換変換、および SQL Server 変換先が含まれています。データ フローは、条件ステートメントおよび条件検索を含む複雑なクエリを AdventureWorks に対して実行し、その結果を AdvWorksDWX 内のディメンション テーブルに書き込みます。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - DimEmployee には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローは人事テーブルに対して検索を実行し、販売員 ID を割り当てて、その結果を AdvWorksDWX のディメンション テーブルに書き込みます。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - DimCurrency には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローは、通貨テーブルからデータを抽出して、列名を変更し、そのデータを AdvWorksDWX のディメンション テーブルに書き込みます。 |
一括挿入タスク |
一括挿入タスク Bulk Insert DimScenario は、.csv ファイルから AdvWorksDWX 内のディメンション テーブルにデータを読み込みます。 |
一括挿入タスク |
一括挿入タスク Bulk Insert - DimTime は、.csv ファイルから AdvWorksDWX 内のディメンション テーブルにデータを読み込みます。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - FactSalesQuota には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローは、販売員の割り当てを抽出し、AdvWorksDXW 内のファクト テーブルを更新します。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - FactCurrencyRate には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローは、SQL ステートメントを使用して通貨情報の抽出と変換を行い、AdvWorksDXW のファクト テーブルを更新します。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - DimProduct には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローは、SQL ステートメントを使用して一時テーブルのデータの複雑な処理を実行し、それから ADvWorksDWX 内のディメンション テーブルを更新します。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - DimProductCategory には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローは、外国の製品カテゴリを英語のカテゴリ名にマップし、ADvWorksDWX 内のディメンション テーブルを更新します。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - DimProductsSubcategory には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローは、製品サブカテゴリの翻訳を参照テーブルから抽出してから、ADvWorksDWX 内のディメンション テーブルを更新します。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - DimGeography には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローは、参照テーブルで住所を検索し、次にその結果を AdvWorksDWX 内のディメンション テーブルに書き込みます。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - DimCustomer には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローは、複数の入力 (DimGeography のデータ、および 2 つの一時テーブル) を受け取り、AdvWorksDWX のディメンション テーブルを更新するデータを抽出します。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - FactInternetSalesReason には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローは AdventureWorks からデータを抽出し、AdvWorksDWX 内のファクト データを更新します。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - DimSalesTerritory 1 には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローは区域の地域コードを検索し、その結果を AdvWorksDWX 内のディメンション テーブルに書き込みます。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - DimSalesTerritory 2 には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローによって、国や地域のマッピングが、以前のデータ フローで処理されたデータへ追加されます。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - DimDepartmentGroup には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローはすべてのグループ名を「企業」に変更し、その値を AdvWorksDWX 内のディメンション テーブルに書き込みます。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - DimDepartmentGroup 1 には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローは、人事テーブル内のグループ名を検索し、その値を AdvWorksDWX 内のディメンション テーブルに書き込みます。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - FactInternetSales には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローは、新しく作成されたユーザー定義関数を含む、複数の入力をその他のタスクから受け取り、AdvWorksDWX 内のファクト テーブルを更新します。 |
データ フロー タスク |
データ フロー タスク Data Flow Task - FactResellerSales には、OLE DB ソースおよび SQL Server 変換先が含まれています。データ フローは、新しく作成されたユーザー定義関数を含む、複数の入力をその他のタスクから受け取り、AdvWorksDWX 内のファクト テーブルを更新します。 |
サンプル結果
dtexec ユーティリティを使用してパッケージを実行した後、次のような結果が表示されます。
サンプルの出力
Microsoft (R) SQL Server Execute Package Utility
Version 9.00.xxxx for 32-bit
Copyright (C) Microsoft Corp 1984-2005. All rights reserved.
開始: 13:03:24 PM
進捗状況: 2005-04-12 13:03:35.14
ソース : Execute SQL Task
クエリ "IF EXISTS (SELECT * FROM [sys].[tables] WHERE [nam" を実行しています。: 100% の完了
進捗状況の終了
進捗状況: 2005-04-12 13:03:35.15
ソース : Execute SQL Task
クエリ "IF EXISTS (SELECT * FROM [sys].[tables] WHERE [nam" を実行しています。: 100% の完了
進捗状況の終了
…
進捗状況: 2005-04-12 13:05:43.77
ソース: Add Indexes
クエリ "CREATE UNIQUE INDEX [AK_DimAccount_AccountCodeAlte" を実行しています。: 100% の完了
進捗状況の終了
進捗状況: 2005-04-12 13:05:46.00
ソース: Add Foreign Key Constraints
クエリ "ALTER TABLE [dbo].[DimAccount] ADD
CONSTRAINT [F" を実行しています。: 100% の完了
進捗状況の終了
DTExec: パッケージの実行から返されました DTSER_SUCCESS (0)
開始: 13:03:24 PM
完了: 1:05:46 PM
経過時間: 141.969 秒