データ フロー要素
SQL ServerIntegration Services には、データ フロー コンポーネントとして、変換元、変換、および変換先の 3 種類が提供されています。変換元は、リレーショナル データベース、ファイル、および Analysis Services データベースのテーブルやビューなどのデータ ストアから、データを抽出します。変換は、データを変更、集約、およびクリーンアップします。変換先は、データをデータ ストアに読み込んだり、メモリ内のデータセットを作成します。
また、Integration Services では、コンポーネントの出力を別のコンポーネントの入力に連結するパスが用意されています。パスは、コンポーネントの順序を定義します。また、パスを使用して注釈をデータ フローに追加したり、列の変換元を表示することもできます。
次の図は、1 つの変換元、入力と出力を 1 つずつとる 1 つの変換、および 1 つの変換先を持つデータ フローを示しています。この図には、入力列、出力列、および外部列に加え、入力、出力、およびエラー出力が含まれています。
変換元
Integration Services での変換元とは、さまざまな外部データ ソースのデータを、データ フロー内の別のコンポーネントで使用できるようにするデータ フロー コンポーネントのことです。
データ フローの変換元は、通常、1 つの標準出力をとります。標準出力には、変換元がデータ フローに追加する列である出力列が含まれます。
標準出力は、外部列を参照します。外部列とは、変換元に含まれる列のことです。たとえば、AdventureWorks2008R2 データベースの Product テーブル内にある MakeFlag 列は、標準出力に追加できる外部列です。外部列のメタデータには、変換元の列の名前、データ型、および長さなどの情報が含まれます。
変換元のエラー出力には、標準出力と同じ列に加え、エラーに関する情報を提供する 2 つの列も含まれます。Integration Services オブジェクト モデルでは、変換元に含めることができる標準出力とエラー出力の数に制限はありません。Integration Services に含まれる、スクリプト コンポーネント以外のほとんどの変換元の標準出力は 1 つです。また、ほとんどの変換元のエラー出力は 1 つです。カスタム ソースをコード化して、複数の標準出力と複数のエラー出力を実装できます。
すべての出力列は、データ フロー内の次のデータ フロー コンポーネントで、入力列として使用できます。
詳細については、「Integration Services の変換元」を参照してください。
変換
変換の機能は多岐にわたります。変換では、データを更新、集約、クリーンアップ、マージ、および分散するタスクを実行できます。
変換の入力と出力では、入力されるデータと出力されるデータの列を定義します。データに対して実行される操作に応じて、変換に 1 つの入力と複数の出力が含まれる場合や、複数の入力と 1 つの出力が含まれる場合があります。変換にはエラー出力を含めることもできます。エラー出力では、発生したエラーに関する情報と、たとえば整数データ型に変換できなかった文字列データなど、失敗したデータが提供されます。Integration Services オブジェクト モデルでは、変換に含めることができる入力、標準出力、およびエラー出力の数に制限はありません。カスタム変換を作成して、複数の入力、標準出力、およびエラー出力をさまざまな組み合わせで実装できます。
変換の入力は、1 つ以上の入力列として定義されます。一部の Integration Services 変換では、外部列を入力として参照することもできます。たとえば、OLE DB コマンド変換への入力には、外部列が含まれます。出力列とは、変換がデータ フローに追加する列のことです。標準出力とエラー出力の両方に出力列が含まれます。これらの出力列は、データ フロー内で次に位置する、別の変換または変換先のどちらかのコンポーネントへの入力列として機能します。
詳細については、「Integration Services の変換」を参照してください。
変換先
変換先とは、データ フローのデータを特定のデータ ストアに書き込んだり、メモリ内のデータセットを作成する、データ フロー コンポーネントのことです。
Integration Services 変換先には、少なくとも 1 つの入力が必要です。入力には、別のデータ フロー コンポーネントからの入力列が含まれます。入力列は、変換先の列にマップされます。
多くの変換先は、さらに 1 つのエラー出力をとります。変換先のエラー出力に含まれる出力列には、通常、データを変換先のデータ ストアに書き込むときに発生するエラーに関する情報が含まれます。エラーの発生原因はさまざまです。たとえば、列に NULL 値が含まれているのに対し、変換先の列には NULL 値を設定できない場合があります。
Integration Services オブジェクト モデルでは、変換先に含めることができる標準入力とエラー出力の数に制限はありません。また、カスタム変換先を作成すると、複数の入力とエラー出力を実装できます。
詳細については、「Integration Services の変換先」を参照してください。
外部メタデータ
SSIS デザイナーを使用してパッケージ内にデータ フローを作成する場合、変換元と変換先のメタデータは、変換元と変換先の外部列にコピーされ、スキーマのスナップショットとして機能します。Integration Services がパッケージを検証する際に、SSIS デザイナーはこのスナップショットを変換元または変換先のスキーマと比較し、変更内容に応じてエラーと警告を通知します。
Integration Services プロジェクトには、オフライン モードが用意されています。オフラインで作業すると、パッケージが使用する変換元または変換先には連結されません。また、外部列のメタデータも更新されません。
入力および出力
変換元は出力をとり、変換先は入力をとります。また、変換は入力と出力の両方をとります。さらに、多くのデータ フロー コンポーネントで、エラー出力を使用するように構成できます。
入力
変換先と変換は入力をとります。入力には 1 つ以上の入力列が含まれており、データ フロー コンポーネントで外部列を使用するように構成されている場合、入力列は外部列を参照できます。入力を構成して、データ フローを監視および制御できます。たとえば、コンポーネントがエラーに応じて失敗する場合に、エラーを無視するか、またはエラー行をエラー出力にリダイレクトするように指定できます。また、入力に説明を割り当てたり、入力名を更新することもできます。SSIS デザイナーで入力を構成するには、[詳細エディター] ダイアログ ボックスを使用します。[詳細エディター] の詳細については、「Integration Services のユーザー インターフェイス」を参照してください。
出力
変換元と変換は、常に出力をとります。出力には 1 つ以上の出力列が含まれており、データ フロー コンポーネントが外部列を使用するように構成されている場合、出力列は外部列を参照できます。出力は、下流でのデータ処理に有用な情報を提供するように構成できます。たとえば、出力を並べ替えるかどうかを指定できます。また、出力に説明を割り当てたり、出力名を更新することもできます。SSIS デザイナーで出力を構成するには、[詳細エディター] ダイアログ ボックスを使用します。
エラー出力
変換元、変換先、および変換には、エラー出力を含めることができます。それぞれの入力または列で、エラーに対するデータ フロー コンポーネントの応答方法を指定するには、[エラー出力の構成] ダイアログ ボックスを使用します。実行時にエラーまたはデータの切り捨てが発生したとき、データ フロー コンポーネントが行をリダイレクトするように構成されている場合、エラーが発生したデータ行はエラー出力に送信されます。既定では、エラー出力には出力列と、ErrorCode および ErrorColumn の 2 つのエラー列が含まれます。出力列には、失敗した行のデータが含まれます。また、ErrorCode 列はエラー コードを提供し、ErrorColumn は失敗した列を識別します。
詳細については、「データ フローのエラー処理」を参照してください。
列
入力、出力、およびエラー出力は、列の集合です。各列は構成可能であり、入力、出力、または外部といった列のタイプに応じて、列のさまざまなプロパティが Integration Services で用意されています。Integration Services では、列のプロパティの設定方法として、プログラムによって設定する方法、コンポーネント固有のダイアログ ボックスを使用する方法、および [詳細エディター] ダイアログ ボックスを使用する方法の、3 種類の方法が用意されています。
パス
パスは、データ フロー コンポーネントを連結します。SSIS デザイナーでは、パスのプロパティの表示と変更、パスの開始点についての出力メタデータの表示、およびデータ ビューアーのパスへのアタッチを行うことができます。
詳細については、「Integration Services のパス」および「データ フローのデバッグ」を参照してください。
データ フロー コンポーネントの構成
データ フロー コンポーネントは、コンポーネント レベル、入力、出力、エラー出力レベル、および列レベルで構成できます。
コンポーネント レベルでは、すべてのコンポーネントに共通のプロパティと、そのコンポーネントのカスタム プロパティを設定します。
入力、出力、およびエラー出力レベルでは、入力、出力、およびエラー出力での共通プロパティを設定します。コンポーネントが複数の出力をサポートしている場合は、出力を追加できます。
列レベルでは、コンポーネントが列に提供しているカスタム プロパティに加え、すべての列との共通プロパティを設定します。コンポーネントで出力列の追加をサポートしている場合は、列を出力に追加できます。
プロパティを設定するには SSIS デザイナーから行うか、またはプログラムによって設定します。SSIS デザイナーでは、要素のプロパティを設定できます。要素のプロパティを設定できます。設定するには、各要素のタイプで用意されているカスタム ダイアログ ボックスを使用するか、[プロパティ] ウィンドウまたは [詳細エディター] ダイアログ ボックスを使用します。
SSIS デザイナーを使用してプロパティを設定する方法の詳細については、「データ フロー コンポーネントのプロパティを設定する方法」を参照してください。
|