変換先コンポーネントの使用
データソースへの接続の確立 後、CData CSV 変換先コンポーネントをワークフローに追加してCSV にデータをロードします。
データフローのCSV への書き込み
下記の手順に従って、CSV に接続しデータを更新します。
- SSIS ツールボックスで、CData CSV 変換先コンポーネントをデータフロータスクにドラッグします。
- 変換元コンポーネントの出力をCData CSV 変換先コンポーネントに接続します。
- CData CSV 変換先コンポーネントをダブルクリックします。CData CSV 変換先エディターダイアログが開きます。
- [接続マネージャー]メニューで、有効なCData CSV 接続マネージャーを選択するか、まだない場合は新しいインスタンスを作成します。
- [テーブルを使用]オプションで、更新するテーブルを選択します。
- Insert、Update、Upsert、またはDelete アクションを選択します。各アクションの詳細については、次の説明を参照してください。
- [マッピング]タブで、変換元から変換先へのマッピングを構成します。デフォルトでは、変換元コンポーネントの出力の中で、選択したテーブル内のカラムと同じ名前のものが自動的にマッピングされます。また、マッピングするカラムを更新することもできます。
NOTE: 読み取り専用カラムは、書き込みができないため、変換先カラムには表示されません。
コマンド実行
データフローを実行すると、本製品 は次のいずれかの処理を実行して変換先のテーブルを更新します。
Insert
コンポーネントは、マッピングされた値を受け取り、データをテーブルに新しい行として挿入します。変換先コンポーネントのプロパティでOutputKey プロパティをTrue に設定すると、'Redirect row' エラー動作を使用してコンポーネントのエラー出力に挿入された結果を取得することができます。
Update
コンポーネントは、提供された主キーに基づいて既存の行を更新します。主キーカラムはマッピングする必要があります。また、主キーカラムをnull にすることはできません。変換先コンポーネントのプロパティでOutputKey プロパティをTrue に設定すると、'Redirect row' エラー動作を使用してコンポーネントのエラー出力に更新された結果を取得することができます。
Upsert
コンポーネントは、主キーを使用して、行を挿入するか更新するかを判断します。主キーカラムがマッピングされ、null ではない場合、コンポーネントは、提供された主キーに基づいて既存の行を更新します。主キーカラムがマッピングされていないか、null の場合、CData CSV 変換先コンポーネントは、データを新しい行として挿入します。変換先コンポーネントのプロパティでOutputKey プロパティをTrue に設定すると、'Redirect row' エラー動作を使用してコンポーネントのエラー出力にupsert された結果を取得することができます。
Delete
コンポーネントは、提供された主キーに基づいて、既存の行を削除します。主キーカラムはマッピングする必要があります。また、主キーカラムをnull にすることはできません。
バルク操作
変換先コンポーネントは、デフォルトでバルク操作を使ってデータソースを更新します。この動作は、コンポーネントのBatchMode およびBatchSize プロパティで制御されます。BatchSize は、コンポーネントに一度に送信するバッチの最大サイズを制御します。送信されるデータの量に応じてBatchSize を大きくするとスループットは向上しますが、より大きなメモリフットプリントが必要になります。
BatchMode およびBatchSize に加えて、グローバルな最大サイズを定義するプロパティとして、DefaultBufferMaxRows およびDefaultBufferSize があります。これらのプロパティのデフォルト値は非常に低いため、非常に大きな書き込み操作を行う場合に最高のパフォーマンスを得るためには、これらの値を大きくする必要があります。
SSIS はデフォルトで自身のバッファーサイズを10MB に、最大行数を10k 行に制限しています。バイト数に制限があるため、SSIS が奇数行を変換先に送信し、行数から想定したとおりの数値にならない場合があります。
バッファープロパティの調整について詳しくは、 Improve Data Flow Performance with SSIS AutoAdjustBufferSize を参照してください。
DefaultBufferMaxRows は、変換先コンポーネントのバッチサイズに使用する値と一致するか、それを上回る必要がありますが、DefaultBufferSize をテストして反復し、適切な値に到達させなければならない場合があります。参考として、DefaultBufferSize の値100000000は〜100MB に相当し、これを出発点としても使用できます。
SSIS 2016+ にはAutoAdjustBufferSize というパッケージプロパティがあり、自動的に適切なサイズを決定しますが、これは数回の反復を要し、一般に手動での反復と比較してパフォーマンスが劣るため、手動での反復をお勧めします。