# tDB2BulkExec

提供されたデータに対して挿入アクションを実行し、DB2データベースへの挿入操作中にパフォーマンスを向上させます。

## tDB2BulkExecの標準プロパティ

これらのプロパティは、標準ジョブのフレームワークで実行されているtDB2BulkExecを設定するために使われます。

標準のtDB2BulkExecコンポーネントは、データベースファミリーに属しています。

このフレームワーク内のコンポーネントは、すべてのTalend製品で利用できます。

情報メモ注: このコンポーネントは、動的データベースコネクターの特定のバージョンです。データベース設定に関連するプロパティは、データベースタイプの選択に応じて異なります。動的データベースコネクターについては、[DB Genericコンポーネント](https://help.qlik.com/talend/r/ja-JP/8.0/components/db-generic/db-generic-component)をご覧ください。

## 基本設定

| プロパティ | 説明 |
| --- | --- |
| データベース | 目的のデータベースタイプをリストから選択し、[Apply] (適用)をクリックします。 |
| [Property type] (プロパティタイプ) | <ul> <li> <p> <span><span>[Built-in] (組み込み)</span>と<span>[Repository] (リポジトリー)</span>のいずれかです。</span></p> </li> <li> <p> <span>[Built-In] (組み込み)</span>: 一元的に保存されるプロパティデータはありません。</p> </li> <li> <p> <span>[Repository] (リポジトリー)</span>: プロパティが保管されるリポジトリーファイルを選択します。後続フィールドは、取得されたデータを使用して自動的に入力されます。</p> </li> </ul> |
| [Use an existing connection] (既存の接続を使用) | 定義済みの接続の詳細を再利用する場合は、このチェックボックスを選択して、[Component List] (コンポーネントリスト)ドロップダウンリストから、目的の接続コンポーネントを選択します。<br><br>情報メモ注: ジョブに親ジョブと子ジョブが含まれている時は、親ジョブと子ジョブの間の既存の接続を共有したい場合(たとえば、親ジョブで作成した接続を子ジョブと共有するなど)には、次のように実行します。<br><br><ol> <li>親レベルで、共有するデータベース接続を、そのデータベース接続そのものを作成する接続コンポーネントの<span>[Basic settings] (基本設定)</span>ビューに登録します。 </li> <li>子レベルで、登録済みのそのデータベース接続を読み取るために専用の接続コンポーネントを使用します。 </li> </ol><br><br>ジョブレベル全体でデータベース接続を共有する方法の例は、[データベース接続を共有](https://help.qlik.com/talend/r/ja-JP/7.3/studio-user-guide/sharing-database-connection)をご覧ください。 |
| [Host] (ホスト) | データベースサーバーのIPアドレス |
| [Port] (ポート) | データベースサーバーのリスニングポート番号。 |
| [Database] (データベース) | データベースの名前 |
| [Table Schema] (テーブルスキーマ) | DBスキーマの名前。 |
| [Username] (ユーザー名)と[Password] (パスワード) | データベースユーザー認証データ。<br><br>パスワードを入力するためには、パスワードフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにパスワードを二重引用符で囲んで入力して[OK]をクリックし、設定を保存します。 |
| [Table] (テーブル) | 書き込まれるテーブルの名前。一度に書き込みができるテーブルは1つだけです。 |
| [Action on table] (テーブルでのアクション) | 定義済みのテーブルで、次のオペレーションの1つを実行できます。<br><br>[None] (なし): 操作は行われません。<br><br>[Drop and create table] (ドロップしてテーブルを作成): テーブルが削除され、再作成されます。<br><br>[Create table] (テーブルを作成): テーブルが存在しないため、作成されます。<br><br>[Create table if not exists] (テーブルが存在しない場合は作成): テーブルが存在しない場合は作成されます。<br><br>[Drop table if exists and create] (テーブルが存在する場合はドロップして作成): テーブルが既に存在する場合は削除されて再作成されます。<br><br>[Clear table] (テーブルをクリア): テーブルのコンテンツが削除されます。 |
| [Schema] (スキーマ)と[Edit schema] (スキーマを編集) | <ul> <li> <p>スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語の<kbd>line</kbd>を避けます。</p> </li> <li> <p> <span>[Built-In] (組み込み)</span>: このコンポーネントに対してのみスキーマを作成し、ローカルに保管します。<span>[Basic settings] (基本設定)</span>タブにあるコンポーネントスキーマの詳細は、<a href="https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/basic-settings-tab" target="_blank">[Basic settings] (基本設定)</a>をご覧ください。</p> </li> <li> <p> <span>[Repository] (リポジトリー)</span>: スキーマは作成済みで、リポジトリーに保管されているので、再利用できます。<span>[Basic settings] (基本設定)</span>タブにあるコンポーネントスキーマの詳細は、<a href="https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/basic-settings-tab" target="_blank">[Basic settings] (基本設定)</a>をご覧ください。</p> </li> <li> <p>スキーマを変更するには<span>[Edit schema] (スキーマを編集)</span>をクリックします。現在のスキーマが<span>リポジトリー</span>タイプの場合は、3つのオプションを利用できます。</p> <ul> <li> <p> <span>[View schema] (スキーマを表示)</span>: スキーマのみを表示する場合は、このオプションを選択します。</p> </li> <li> <p> <span>[Change to built-in property] (組み込みのプロパティに変更)</span>: ローカルで変更を行うためにスキーマを<span>組み込み</span>に変更する場合は、このオプションを選択します。</p> </li> <li> <p> <span>[Update repository connection] (リポジトリー接続をアップデート)</span>: リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。</p> <p>変更を現在のジョブにのみ反映する場合は、変更後、<span>[No] (いいえ)</span>を選択し、<span>[Repository Content] (リポジトリーコンテンツ)</span>ウィンドウで再びこのスキーマのメタデータを選択します。</p> </li> </ul> </li> </ul> |
| [Use Ingest Command] (取り込みコマンドを使う) | このチェックボックスを選択すると、INGESTコマンドを使ってデータをDB2に取り込むことができます。取り込みコマンドの詳細は、http://www.ibm.com/developerworks/data/library/techarticle/dm-1304ingestcmdとhttps://www-01.ibm.com/support/knowledgecenter/SSEPGG\_10.1.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0057198.html?cp=SSEPGG\_10.1.0%2F3-5-2-4-59をご覧ください。 |
| [Load From] (ロード元) | 入力するデータのソースを選択します。<br><br><ul> <li> <p> <span>[FILE] (ファイル)</span>: ファイルからデータをロードします。</p> </li> <li> <p> <span>[PIPE] (パイプ)</span>: パイプからデータをロードします。</p> </li> <li> <p> <span>[FOLDER] (フォルダー)</span>: フォルダー内の複数のファイルからデータをロードします。</p> </li> </ul><br><br>このリストは、[Use Ingest Command] (取り込みコマンドを使う)チェックボックスがオンの場合にのみ使えます。 |
| [Data File] (データファイル) | ロードするファイルの名前。<br><br>情報メモ注: このファイルは、[Host] (ホスト)フィールドのURIで指定されたマシン上に置かれているため、データベースサーバーと同じマシン上にある必要があります。<br><br>[Load From] (ロード元)ドロップダウンリストから[PIPE] (パイプ)または[FOLDER] (フォルダー)が選択されている場合、このフィールドは表示されません。 |
| [Data File/Named Pipe] (データファイル/名前付きパイプ) | データのロード元であるファイルの名前、または名前付きパイプ。このコンポーネントは、DB2テーブルにデータをロードする時にデータファイルと名前付きパイプをサポートします。DB2システムプロシージャーであるSYSPROC.ADMIN\_CMDを呼び出すことで、LOADコマンドを使ってデータをロードします。詳細は、[LOAD command using the ADMIN_CMD procedure](https://www.ibm.com/docs/en/db2/10.5?topic=commands-load-using-admin-cmd#:~:text=LOAD%20command%20using%20the%20ADMIN_CMD%20procedure%20Efficiently%20loads,the%20data%20is%20loaded%20into%20the%20DB2%20table)をご覧ください。<br><br>情報メモ注:<br><br><ul> <li>このファイルは、<span>[Host] (ホスト)</span>フィールドのURIで指定されたマシン上に置かれているため、データベースサーバーと同じマシン上にある必要があります。</li> <li>名前付きパイプがサーバー側の名前付きパイプであることを確認します。そのため、ターゲットサーバーで設定する必要があります。 </li> </ul><br><br>[Use Ingest Command] (取り込みコマンドを使う)が選択されている時は、このフィールドは表示されません。 |
| [Pipe Name] (パイプ名) | パイプの名前を入力します。<br><br>このフィールドは、[Load From] (ロード元)ドロップダウンリストから[PIPE] (パイプ)が選択されている場合にのみ使えます。 |
| フォルダー | ロードするファイルを保持するフォルダーへのパスを指定します。<br><br>このフィールドは、[Load From] (ロード元)ドロップダウンリストから[FOLDER] (フォルダー)が選択されている場合にのみ使えます。 |
| [Action on data] (データでのアクション) | 定義済みテーブルのデータで、次の操作の1つを実行できます。<br><br><ul> <li> <p> <span>[Insert] (挿入)</span>: 新しいレコードをテーブルに追加します。重複が見つかった場合、ジョブは停止されます。</p> </li> <li> <p> <span>[Replace] (置換)</span>: テーブルに新しいレコードを追加します。プライマリキーまたは一意なインデックスで、テーブル内の古いレコードに新しいレコードと同じ値のものがある場合は、新しいレコードが挿入される前に古いレコードが削除されます。</p> </li> <li> <p> <span>[Update] (アップデート)</span>: 既存のレコードを変更します。</p> </li> <li> <p> <span>[Delete] (削除)</span>: 入力データと一致するレコードを削除します。</p> </li> <li> <p> <span>[Merge] (マージ)</span>: 入力データをテーブルにマージします。</p> </li> </ul><br><br>[Delete] (削除)と[Merge] (マージ)は、[Use Ingest Command] (取り込みコマンドを使う)チェックボックスがオンの場合にのみ使えます。 |
| [File Glob Pattern] (ファイルGlobパターン) | ロードするファイルのグローバル式を指定します。<br><br>このフィールドは、[Load From] (ロード元)ドロップダウンリストから[FOLDER] (フォルダー)が選択されている場合にのみ使えます。 |
| [Where Clause] (Where句) | WHERE句を入力して、処理するデータをフィルタリングします。<br><br>このフィールドは、[Action on Data] (データ操作)ドロップダウンリストで[update] (アップデート)または[delete] (削除)を選択している場合にのみ使えます。 |
| [Custom Insert Values Clause] (カスタム挿入値句) | このチェックボックスをオンにして、表示された[Insert Values Clause] (値の挿入句)フィールドに、[insert] (挿入)操作のVALUES句を入力します。<br><br>このチェックボックスは、[Use Ingest Command] (取り込みコマンドを使う)チェックボックスがオンで、[Action on Data] (データに対するアクション)ドロップダウンリストから[insert] (挿入)が選択されている場合にのみ使えます。 |
| [Custom Update Set Clause] (カスタムアップデート設定句) | このチェックボックスをオンにし、[Set Mapping] (マッピングの設定)テーブルに入力して、[update] (アップデート)操作のSET句を指定します。<br><br>このチェックボックスは、[Use Ingest Command] (取り込みコマンドを使う)チェックボックスがオンで、[Action on Data] (データに対するアクション)ドロップダウンリストから[update] (アップデート)が選択されている場合にのみ使えます。 |
| [Set Mapping] (マッピングの設定) | このテーブルを完成して、[update] (アップデート)操作のSET節を指定します。<br><br><ul> <li> <p> <span>[Column] (カラム)</span>: カラムの名前。デフォルトでは、<span>[Column] (カラム)</span>カラムのフィールドはスキーマ内のフィールドと同じです。</p> </li> <li> <p> <span>[Expression] (式)</span>: 対応するカラムの式。</p> </li> </ul><br><br>このテーブルは、[Custom Update Set Clause] (カスタムアップデート設定句)チェックボックスがオンの場合にのみ使えます。 |
| [Merge Clause] (マージ句) | [merge] (マージ)操作にMERGE句を指定します。<br><br>このテーブルは、[Use Ingest Command] (取り込みコマンドを使う)チェックボックスがオンで、[Action on Data] (データに対するアクション)ドロップダウンリストから[merge] (マージ)が選択されている場合にのみ使えます。 |
| [Content Format] (コンテンツフォーマット) | 入力ファイルのフォーマットとして、[Delimited] (区切り)または[Positional] (固定長ファイル)を選択します。<br><br>このリストは、[Use Ingest Command] (取り込みコマンドを使う)チェックボックスがオンの場合にのみ使えます。 |
| [Delimited By] (区切り) | 区切り付きファイルのフィールドを区切る文字を入力します。<br><br>このフィールドは、[Content Format] (コンテンツフォーマット)ドロップダウンリストから[Delimited] (区切り)が選択されている場合にのみ使えます。 |
| [Optionally Enclosed By] (オプションで囲む) | 区切り付きファイル内の文字列を囲む文字を入力します。<br><br>このフィールドは、[Content Format] (コンテンツフォーマット)ドロップダウンリストから[Delimited] (区切り)が選択されている場合にのみ使えます。 |
| [Fixed Length] (固定長) | 固定長ファイルのレコードの長さ(バイト単位)を入力します。<br><br>このフィールドは、[Content Format] (コンテンツフォーマット)ドロップダウンリストから[Positional] (固定長ファイル)が選択されている場合にのみ使えます。 |
| [Mapping] (マッピング) | このテーブルを完成して、ソースカラムとDB2テーブルカラムの間のマッピング関係を指定します。<br><br><ul> <li> <p> <span>[Column] (カラム)</span>: カラムの名前。デフォルトでは、<span>[Column] (カラム)</span>カラムのフィールドはスキーマ内のフィールドと同じです。</p> </li> <li> <p> <span>Is Table Column</span>: 対応するカラムがテーブルカラムである場合は、チェックボックスをオンにします。</p> </li> <li> <p> <span>[Start Position] (開始位置)</span>: 対応するカラムの開始位置。</p> </li> <li> <p> <span>[End Position] (終了位置)</span>: 対応するカラムの終了位置。</p> <p><span>[Start Position] (開始位置)</span>カラムと<span>[End Position] (終了位置)</span>カラムは、<span>[Content Format] コンテンツフォーマット)</span>ドロップダウンリストから<span>[Positional] (固定長ファイル)</span>が選択されている場合にのみ使えます。</p> </li> </ul><br><br>このテーブルは、[Use Ingest Command] (取り込みコマンドを使う)チェックボックスがオンの場合にのみ使えます。 |
| [Script Generated Folder] (スクリプト生成フォルダー) | スクリプトファイルの作成先となるディレクトリーを指定します。<br><br>このフィールドは、[Use Ingest Command] (取り込みコマンドを使う)チェックボックスがオンの場合にのみ使えます。 |

## 詳細設定

| プロパティ | 説明 |
| --- | --- |
| [Additional JDBC parameters] (追加のJDBCパラメーター) | 作成するデータベース接続の接続の追加プロパティを指定します。<br><br>情報メモ注:<br><br>エンコーディングパラメーターの設定はこのフィールドで行います。 |
| [Field terminated by] (フィールド区切り) | フィールドを区切る文字、文字列、または正規表現。 |
| [Date Format] (日付形式) | このフィールドを使って、月と日の順序を定義します。 |
| [Time Format] (時刻の形式) | このフィールドを使って、時、分、秒の順序を定義します。 |
| [Timestamp Format] (タイムスタンプ形式) | このフィールドを使って、日付と時刻の順序を定義します。 |
| [Remove load pending] (ロードペンディングを削除) | ボックスをオンにすると、一括ロード後に"保留中"ステータスでブロックされたテーブルのブロックが解除されます。 |
| [Load options] (ロードオプション) | [+]をクリックするとデータロードオプションを追加できます。<br><br>[Parameter] (パラメーター): ローディングパラメーターをリストから選択します。<br><br>[Value] (値): 選択したパラメーターに値を入力します。 |
| [tStat Catcher Statistics] (tStatCatcher統計) | このチェックボックスを選択すると、コンポーネントレベルでログデータを収集できます。 |

## グローバル変数

| 変数 | 説明 |
| --- | --- |
| グローバル変数 | NB\_LINE: 処理された行の数。これはAfter変数で、整数を返します。<br><br>NB\_LINE\_UPDATED: アップデートされた行の数。これはAfter変数で、整数を返します。<br><br>NB\_LINE\_INSERTED: 挿入された行の数。これはAfter変数で、整数を返します。<br><br>NB\_LINE\_DELETED: 削除された行の数。これはAfter変数で、整数を返します。<br><br>QUERY: 処理されたクエリーステートメント。これはAfter変数で、文字列を返します。<br><br>ERROR\_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。<br><br>Flow変数はのコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。<br><br>フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。<br><br>変数の詳細は、[コンテキストと変数を使用](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/contexts-and-variables)をご覧ください。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | この専用コンポーネントにより、DB2のクエリー処理のパフォーマンスと柔軟性が向上します。 |
| [Dynamic settings] (ダイナミック設定) | [+]ボタンをクリックしてテーブルに行を追加し、[Code] (コード)フィールドにコンテキスト変数を入力して、ジョブ内で計画した複数の接続からデータベース接続をダイナミックに選択します。この機能は、データストラクチャーが同じでデータベースが異なるデータベーステーブルにアクセスする必要がある場合、特に、Talend Studioを介さずにジョブをデプロイおよび実行する必要がある時など、ジョブの設定を変更できない環境で作業している場合に役立ちます。<br><br>[Dynamic settings] (ダイナミック設定)テーブルは、[Basic settings] (基本設定)ビューで[Use an existing connection] (既存の接続を使用)チェックボックスがオンになっている時のみ利用可能です。ダイナミックパラメーターを定義すると、[Basic settings] (基本設定)ビューの[Component List] (コンポーネントリスト)ボックスは利用できなくなります。<br><br>ダイナミックパラメーターの定義法を示すユースケースについては、[コンテキストベースのダイナミック接続によってデータベースからデータを読み取り](https://help.qlik.com/talend/r/ja-JP/8.0/components/defining-context-groups/reading-data-from-databases-through-context-based-dynamic-connections)と、[ダイナミックにロードされた接続パラメーターを使って異なるMySQLデータベースからデータを読み取り](https://help.qlik.com/talend/r/ja-JP/8.0/components/context/reading-data-from-different-mysql-databases-using-dynamically-loaded-connection-parameters)をご覧ください。ダイナミック設定とコンテキスト変数の詳細は、[ダイナミックスキーマ](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/dynamic-schema)と[コンテキストグループを作成し、その中でコンテキスト変数を定義](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/creating-context-group-and-define-context-variables-in-it)をご覧ください。 |