Share via


Integration Services を使用して Parallel Data Warehouse にデータを読み込む

SQL Server Integration Services (SSIS) パッケージを使用して SQL Server Parallel Data Warehouse にデータを読み込むためのリファレンスとデプロイ情報を提供します。

基本

Integration Services は、データのハイ パフォーマンスの抽出、変換、読み込み (ETL) のための SQL Server のコンポーネントであり、データ ウェアハウスの事前設定と更新に広く使用されています。

PDW 変換先アダプターは、Integration Services dtsx パッケージを使用して PDW にデータを読み込むことができる Integration Services コンポーネントです。 分析プラットフォーム システム (PDW) のパッケージ ワークフローでは、複数のソースからデータを読み込んでマージし、データを複数の対象に読み込むことができます。 データの読み込みは、1 つのパッケージと、同時に実行されている複数のパッケージ内の両方で並行して行われます。同じアプライアンス上で最大 10 の読み込みを並行して実行できます。

このトピックで説明するタスクに加えて、Integration Services の他の機能を使用して、データ ウェアハウスに読み込む前にデータのフィルター適用、変換、分析、クレンジングができます。 SQL ステートメントの実行、子パッケージの実行、またはメールの送信によって、パッケージのワークフローを拡張することもできます。

Integration Services の完全なドキュメントについては、SQL Server Integration Services を参照してください。

Integration Services パッケージを実行するための方法

Integration Services パッケージを実行するには、次のいずれかの方法を使用します。

SQL Server 2008 R2 の Business Intelligence Development Studio (BIDS) から実行

BIDS 内からパッケージを実行するには、パッケージを右クリックし、[パッケージの実行] を選択します。

既定では、BIDS は 64 ビット バイナリを使用してパッケージを実行します。 これは、Run64BitRuntime パッケージ プロパティによって決まります。 このプロパティを設定するには、ソリューション エクスプローラーを開き、プロジェクトを右クリックして [プロパティ] を選択します。 Integration Services プロパティ ページで、[構成プロパティ] に移動し、[デバッグ] を選択します。 [デバッグ オプション] の下に Run64BitRuntime のプロパティが表示されます。 32 ビット ランタイムを使用するには、これを [False] に設定します。 64 ビット ランタイムを使用するには、これを [True] に 設定します。

SQL Server 2012 SQL Server Data Tools からの実行

SQL Server Data Tools 内からパッケージを実行するには、パッケージを右クリックし、[パッケージの実行] を選択します。

PowerShell からの実行

dtexec ユーティリティを使用して Windows PowerShell からパッケージを実行する場合: dtexec /FILE <packagePath>

たとえば、dtexec /FILE "C:\Users\User1\Desktop\Package.dtsx" のように指定します。

Windows コマンド プロンプトからの実行

dtexec ユーティリティを使用して Windows コマンド プロンプトからパッケージを実行する場合: dtexec /FILE <packagePath>

例: dtexec /FILE "C:\Users\User1\Desktop\Package.dtsx"

データ型

Integration Services を使用してデータ ソースから SQL Server PDW データベースにデータを読み込む場合、データは最初にソース データから Integration Services のデータ型にマッピングされます。 これにより、複数のデータ ソースのデータをデータ型の共通のセットにマップできます。

その後、そのデータは Integration Services から SQL Server PDWのデータ型にマッピングされます。 次の表に、SQL Server PDWのデータ型ごとに、SQL Server PDWのデータ型に変換できる Integration Services のデータ型を示します。

PDW のデータ型 PDW のデータ型にマッピングされる Integration Services のデータ型
BIT DT_BOOL
BIGINT DT_I1、DT_I2、DT_I4、DT_I8、DT_UI1、DT_UI2、DT_UI4
CHAR DT_STR
DATE DT_DBDATE
DATETIME DT_DATE、DT_DBDATE、DT_DBTIMESTAMP、DT_DBTIMESTAMP2
DATETIME2 DT_DATE、DT_DBDATE、DT_DBTIMESTAMP、DT_DBTIMESTAMP2
DATETIMEOFFSET DT_WSTR
DECIMAL DT_DECIMAL、DT_I1、DT_I2、DT_I4、DT_I4、DT_I8、DT_NUMERIC、DT_UI1、DT_UI2、DT_UI4、DT_UI8
FLOAT DT_R4、DT_R8
INT DT_I1、DTI2、DT_I4、DT_UI1、DT_UI2
MONEY DT_CY
NCHAR DT_WSTR
NUMERIC DT_DECIMAL、DT_I1、DT_I2、DT_I4、DT_I8、DT_NUMERIC、DT_UI1、DT_UI2、DT_UI4、DT_UI8
NVARCHAR DT_WSTR、DT_STR
real DT_R4
SMALLDATETIME DT_DBTIMESTAMP2
SMALLINT DT_I1、DT_I2、DT_UI1
SMALLMONEY DT_R4
TIME DT_WSTR
TINYINT DT_I1
VARBINARY DT_BYTES
VARCHAR DT_STR

データ型の有効桁数の限定的サポート

有効桁数が 28 より大きい値の入った入力列 DT_NUMERIC または DT_DECIMAL をマッピングすると、PDW によって検証エラーが発生します。

サポートされていないデータ型

SQL Server PDW では、Integration Services の次のデータ型はサポートされていません。

  • DT_DBTIMESTAMPOFFSET

  • DT_DBTIME2

  • DT_GUID

  • DT_IMAGE

  • DT_NTEXT

  • DT_TEXT

これらの型のデータが入った列を SQL Server PDW に読み込むには、データ フローにデータ変換の変換アップストリームを追加して、互換性のあるデータ型にデータを変換する必要があります。

アクセス許可

Integration Services 読み込みパッケージを実行するには、以下が必要です。

  • データベースでの LOAD 権限。

  • 変換先テーブルでの該当する INSERT、UPDATE、DELETE 権限

  • ステージング データベースを使用する場合は、ステージング データベースでの CREATE 権限。 これは一時テーブルの作成用です。

  • ステージング データベースを使用しない場合は、変換先データベースでの CREATE 権限。 これは一時テーブルの作成用です。

一般的な注釈

Integration Services パッケージで複数の SQL Server PDW の変換先が実行されていて、いずれかの接続が終了すると、Integration Services はすべての SQL Server PDW の変換先へのデータのプッシュを停止します。

制限事項と制約事項

Integration Services パッケージでは、同じデータ ソースに対する SQL Server PDW の変換先の数は、アクティブな読み込みの最大数によって制限されます。 最大数は事前に構成されており、ユーザーは構成できません。

同じデータ ソースに対するIntegration Services パッケージの各変換先は、パッケージの実行時に 1 回の読み込みとしてカウントされます。 たとえば、アクティブな読み込みの最大数が 10 であるとします。 同じデータ ソースの 11 以上の変換先を開こうとすると、パッケージは実行されません。

各パッケージが使用するアクティブな読み込みが最大数を超えない限り、複数のパッケージを同時に実行できます。 たとえば、アクティブな読み込みの最大数が 10 の場合、それぞれが 10 の変換先を使用する 2 つのパッケージを同時に実行できます。 一方のパッケージが読み込みキューで待機しているときに、もう一方のパッケージが実行されます。

読み込みキューの読み込みの数が、キューに登録された読み込みの最大数を超えると、パッケージは実行されません。 例えば、読み込みの最大数がアプライアンスに付き 10個 で、キューに登録された読み込みの最大数がアプライアンスに付き 40個 である場合、それぞれが 10個 の返還先を開く 5 つの Integration Services パッケージを同時に実行できます。 6 番目のパッケージを実行しようとしても、実行されません。

重要

SSIS で PDW 変換先アダプターと共に OLE DB データ ソースを使用すると、ソース テーブルに SQL 照合順序を持つ char 列と varchar 列が含まれていると、データが破損する可能性があります。 ソース テーブルに SQL 照合順序を持つ char 列または varchar 列が含まれている場合は、ADO.NET ソースを使用することをお勧めします。

ロック動作

Integration Services を使用してデータを読み込む場合、分析プラットフォーム システム (PDW) は行レベルのロックを使用して、変換先テーブルのデータを更新します。 つまり、各行は更新時に読み取り/書き込み用にロックされます。 変換先テーブル内の行は、データがステージング テーブルに読み込まれる間はロックされません。

A. フラット ファイルからの単純な読み込み

次の説明では、Integration Services を使用してフラット ファイル データを SQL Server PDW アプライアンスに読み込む単純なデータ読み込みを紹介します。 この例では、前述のように、Integration Services がクライアント コンピューターに既にインストールされており、SQL Server PDW 変換先がインストールされていることを前提としています。

この例では、次の DDL がある Orders テーブルに読み込みます。 Orders テーブルは LoadExampleDB データベースの一部です。

CREATE TABLE LoadExampleDB.dbo.Orders (  
   id INT,  
   city varchar(25),  
   lastUpdateDate DATE,  
   orderDate DATE)  
;  

これが読み込みデータです。

id        city           lastUpdateDate     orderdate  
--------- -------------- ------------------ ----------  
1         Seattle        2010-05-01         2010-01-01  
2         Denver         2002-06-25         1999-01-02  

読み込みの準備として、読み込みデータが入ったフラット ファイル exampleLoad.txt を作成します。

id,city,lastUpdateDate,orderDate  
1,Seattle,2010-05-01,2010-01-01  
2,Denver,2002-06-25,1999-01-02  

まず、これらのステップを実行して Integration Services パッケージを作成します。

  1. SQL Server Data Tools (SSDT) で、[ファイル]、[新規作成]、[プロジェクト] の順に選択します。 一覧のオプションから [Integration Services プロジェクト] を選択します。 このプロジェクトに ExampleLoad という名前を付け、[OK] をクリックします。

  2. [制御フロー] タブをクリックし、[ツールボックス] から [制御フロー] ウィンドウにデータ フロー タスクをドラッグします。

  3. [データ フロー] タブをクリックし、[ツールボックス] から [データ フロー] ウィンドウにフラット ファイル ソースをドラッグします。 先ほど作成したボックスをダブルクリックして、フラット ファイル ソース エディターを 開きます。

  4. [接続マネージャー] をクリックし、[新規作成] をクリックします。

  5. [接続マネージャー名] ボックスに、接続のフレンドリ名を入力します。 この例では Example Load Flat File CM です。

  6. [参照] をクリックし、ローカル コンピューターから ExampleLoad.txt ファイルを選択します。

  7. フラット ファイルには列名の入った行が含まれているので、[データ行の 1 行目の列名] ボックスをクリックします。

  8. 左側の列の [] をクリックし、読み込まれるデータをプレビューして、列名とデータが正しく解釈されたことを確認します。

  9. 左側の列で [詳細設定] をクリックします。 各列名をクリックして、データに関連付けられているデータ型を確認します。 読み込まれたデータのデータ型が変換先の列の型と互換性を持つよう、ボックスに変更を入力します。

  10. [OK] をクリックして接続マネージャーを保存します。

  11. [OK] をクリックしてフラット ファイル ソース エディターを終了します。

データ フローの変換先を指定します。

  1. [ツールボックス] から [データ フロー] ウィンドウに SQL Server PDW 変換先をドラッグします。

  2. 先ほど作成したボックスをダブルクリックして、SQL Server PDW 変換先エディターを 読み込みます。

  3. 接続マネージャーの横にある下矢印を クリックします。

  4. [新しい接続を作成する] を選択します。

  5. サーバー、ユーザー、パスワード、および変換先データベースの情報に、使用しているアプライアンスに固有の情報を入力します。 (例が下にあります)。 OK をクリックします。

    InfiniBand 接続でのサーバー名: <appliance-name>-SQLCTL01,17001 を入力します。

    イーサネット接続でのサーバー名: 制御ノード クラスターの IP アドレス、コンマ、ポート 17001 を入力します。 例えば、10.192.63.134,17001 となります。

    ユーザー:user1

    パスワード:password1

    変換先データベース:LoadExampleDB

  6. 変換先テーブル: Orders を選択します。

  7. 読み込みモードに [追加] を選択し、[OK] をクリックします。

ソースから変換先へのデータ フローを指定します。

  1. [データ フロー] ウィンドウで、緑色の矢印を [フラット ファイル ソース] ボックスから [SQL Server PDW 変換先] ボックスにドラッグします。

  2. SQL Server PDW 変換先エディターが再び表示されるように、[SQL Server PDW 変換先] ボックスをダブルクリックします。 左側の [マッピングされていない入力列] の下に、フラット ファイルからの列名が表示されます。 右側の [マッピングされていない変換先列] の下に、変換先テーブルからの列名が表示されます。 [マッピングされていない入力列] リストと [マッピングされていない変換先列] リストで一致する列名をドラッグまたはダブルクリックして、[マッピングされた列] ボックスに列をマッピングします。 OK をクリックして、設定を保存します。

  3. [ファイル] メニューの [保存] をクリックしてパッケージを保存します。

コンピューターの Integration Services でパッケージを実行します。

  1. Integration Services のソリューション エクスプローラー (右側の列) で、Package.dtsx を右クリックし、[実行] を選択します。

  2. パッケージが実行され、進行状況とエラーが [進行状況] ウィンドウに表示されます。 SQL クライアントを使用して読み込みを確認するか、SQL Server PDW 管理コンソールを使用して読み込みを監視します。

参照

SSIS PDW 変換先アダプターを使用するスクリプト タスクの作成
SQL Server Integration Services
パッケージの設計と実装 (Integration Services)
チュートリアル: ウィザードを使用した基本的なパッケージの作成
開始 (Integration Services)
動的パッケージ生成のサンプル
並列処理のための SSIS パッケージの設計 (SQL Server ビデオ)
変更データ キャプチャによる増分読み込みの改善
緩やかに変化するディメンション変換
一括挿入タスク