# tVerticaBulkExec

Vertica COPY SQLステートメントを使用して、ローカルファイルからVerticaデータベーステーブルにデータをロードします。

## tVerticaBulkExecの標準プロパティ

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

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

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

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

## 基本設定

| プロパティ | 説明 |
| --- | --- |
| データベース | 目的のデータベースタイプをリストから選択し、[Apply] (適用)をクリックします。 |
| [Property Type] (プロパティタイプ) | 接続の詳細を設定する方法を選択します。<br><br><ul> <li> <p> <span>[Built-In] (組み込み)</span>: このコンポーネントの接続の詳細がローカルに設定されます。関連するすべての接続のプロパティ値を手動で指定する必要があります。</p> </li> <li> <p> <span>[Repository] (リポジトリー)</span>: <span><span>[Repository] (リポジトリー)</span> &gt; <span>[Metadata] (メタデータ)</span></span>で一元的に保存された接続の詳細が、このコンポーネントによって再使用されます。 </p> <p>このチェックボックスの横にある <span>[...]</span> ボタンをクリックし、表示された <span>[Repository Content] (リポジトリーのコンテンツ)</span>ダイアログボックスで、再使用する接続の詳細を選択すると、関連するすべての接続のプロパティに値が自動的に入力されます。</p> </li> </ul> |
| [Use an existing connection] (既存の接続を使用) | 定義済みの接続の詳細を再利用する場合は、このチェックボックスを選択して、[Component List] (コンポーネントリスト)ドロップダウンリストから、目的の接続コンポーネントを選択します。<br><br>ジョブに親ジョブと子ジョブが含まれている時は、2つのレベルの間の既存の接続を共有する必要がな場合(たとえば、親ジョブで作成した接続を子ジョブと共有するなど)には、以下を実行する必要があります。<br><br><ol> <li> <p>親レベルで、共有するデータベース接続を、そのデータベース接続そのものを作成する接続コンポーネントの<span>[Basic settings] (基本設定)</span>ビューに登録します。</p> </li> <li> <p>子レベルで、登録済みのそのデータベース接続を読み取るために専用の接続コンポーネントを使用します。</p> </li> </ol><br><br>ジョブレベル全体でデータベース接続を共有する方法の例は、[データベース接続を共有](https://help.qlik.com/talend/r/ja-JP/7.3/studio-user-guide/sharing-database-connection)をご覧ください。 |
| [Host] (ホスト) | データベースのIPアドレスまたはホスト名。 |
| [Port] (ポート) | データベースのリスニングポート番号。 |
| [Database] (データベース) | データベースの名前。 |
| [Schema] (スキーマ) | データベースのスキーマ。 |
| [Username] (ユーザー名)と[Password] (パスワード) | データベースユーザー認証データ。<br><br>パスワードを入力するためには、パスワードフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにパスワードを二重引用符で囲んで入力して[OK]をクリックし、設定を保存します。 |
| テーブル | データが書き込まれるテーブルの名前を入力します。 |
| [Action on table] (テーブルでのアクション) | 定義されたテーブルに対して実行する操作を選択します。<br><br><ul> <li> <p> <span>[Default] (デフォルト)</span>: 操作は行われません。</p> </li> <li> <p> <span>[Drop and create table] (ドロップしてテーブルを作成)</span>: テーブルが削除され、再作成されます。</p> </li> <li> <p> <span>[Create table] (テーブルを作成)</span>: テーブルが存在しないため、作成されます。</p> </li> <li> <p> <span>[Create table if not exists] (テーブルが存在しない場合は作成)</span>: テーブルが存在しない場合は作成されます。</p> </li> <li> <p> <span>[Drop table if exist and create] (テーブルが存在する場合はドロップして作成)</span>: テーブルが既に存在する場合は削除されて再作成されます。</p> </li> <li> <p> <span>[Clear table] (テーブルをクリア)</span>: テーブルのコンテンツが削除されます。この操作はロールバックできます。</p> </li> </ul> |
| [Use existing dynamic schema] (既存のダイナミックスキーマを使用) | このオプションを選択すると、tSetDynamicSchemaコンポーネントによって生成されたダイナミックスキーマを使用できます。このオプションではtSetDynamicSchemaコンポーネントが少なくとも1つ必要です。<br><br>[Dynamic schema] (ダイナミックスキーマ)ドロップダウンリストから、目的のダイナミックスキーマを生成するコンポーネントを選択します。 |
| [Schema] (スキーマ)と[Edit schema] (スキーマを編集) | スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。<br><br><ul> <li> <p> <span>[Built-in] (組み込み)</span>: そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。</p> </li> <li> <p> <span>[Repository] (リポジトリー)</span>: スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。</p> </li> </ul><br><br>再利用するスキーマに整数またはファンクションのデフォルト値が指定されている場合は、これらのデフォルト値を引用符で囲まないようにご注意ください。引用符で囲まれている場合は手動で削除します。<br><br>詳細は、[テーブルスキーマを取得](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/retrieving-table-schemas?tocId=_C1~eFOlN~GM_JR2qkBYZg)をご覧ください。<br><br>スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。変更を加えると、スキーマは自動的に組み込みになります。<br><br><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> |
| [Use schema columns for Copy] (コピー用のスキーマカラムを使用) | COPYステートメントのカラムオプションを使用する場合は、このチェックボックスを選択して、テーブル内の1つ以上の指定されたカラムにロードを制限できるようにします。詳細は、[Vertica COPY SQL Statement](https://my.vertica.com/docs/9.0.x/HTML/index.htm#Authoring/SQLReferenceManual/Statements/COPY/COPY.htm)をご覧ください。 |
| [File name] (ファイル名) | データのロード元となるファイルへのパス。<br><br>このファイルは、Talend Studioがインストールされているマシンか、このコンポーネントを使っているジョブがデプロイされているマシンに置く必要があります。<br><br>これらのプロパティは、入力フローがない場合のみ利用できます。 |
| [Compression mode] (圧縮モード) | データのロード元のファイルの圧縮モードを選択します。<br><br>このプロパティは、Vertica6.0以降を使用している時のみ利用可能です。 |

## 詳細設定

| プロパティ | 説明 |
| --- | --- |
| [Additional JDBC Parameters] (追加のJDBCパラメーター) | 作成するデータベース接続に追加のJDBCパラメーターを指定します。<br><br>このプロパティは、[Basic settings] (基本設定)で[Use an existing connection] (既存の接続を使用)チェックボックスがオンになっている場合は利用できません。 |
| [Action on data] (データでのアクション) | 定義されたテーブルのデータに対して実行する操作を選択します。<br><br><ul> <li> <p> <span>[Bulk insert] (バルク挿入)</span>: 単一行の挿入を行う代わりに、一度に複数の行をテーブルに挿入します。重複が見つかると、ジョブは停止します。</p> </li> <li> <p> <span>[Bulk update] (バルクアップデート)</span>: 複数の行を同時にアップデートします。</p> </li> </ul> |
| [Stream name] (ストリーム名) | 特定のロードを識別するのに役立つロードのストリーム名。<br><br>このプロパティは、Vertica6.0以降を使用している時のみ利用可能です。 |
| [Write to ROS (Read Optimized Store)] (ROS (Read Optimized Store)に書込み) | データは圧縮されて事前にソートされているため、読み取りを最適化するために、このチェックボックスを選択してデータを物理ストレージエリアに保存します。 |
| [Exit Job on no rows loaded] (行がロードされない時はジョブを終了) | 行がロードされていない場合、ジョブは自動的に停止します。 |
| [Missing columns as null] (欠落カラムをNullに) | スキーマで指定されたカラムと一致するデータが不十分な場合に欠落しているカラムにNULL値を挿入する場合は、このチェックボックスを選択します。<br><br>このプロパティは、Vertica6.0以降を使用している時のみ利用可能です。 |
| [Skip Header] (ヘッダーをスキップ) | このチェックボックスを選択して、その横に表示されるフィールドに、ファイル内でスキップするレコードの数を指定します。<br><br>このプロパティは、Vertica6.0以降を使用している時のみ利用可能です。 |
| [Record terminator] (レコード終端記号) | このチェックボックスを選択して、その横に表示されるフィールドに、ファイル内の各レコードの終端を示すために使用するリテラル文字列を指定します。<br><br>このプロパティは、Vertica6.0以降を使用している時のみ利用可能です。 |
| [Enclosed by character] (文字で囲む) | データを囲む文字を設定する場合は、このチェックボックスを選択します。<br><br>このプロパティは、Vertica6.0以降を使用している時のみ利用可能です。 |
| [Escape char] (エスケープ文字) | このチェックボックスを選択して、表示されるフィールドで、データをVerticaにロードする時にエスケープする文字を指定します。デフォルトではチェックボックスがオンになっており、デフォルトのエスケープ文字は\です。 |
| [Fields terminated by] (フィールド区切り) | フィールドを区切る文字、文字列、正規表現のいずれか。 |
| [Null String] (null文字列) | 値がnullであることを示すために表示される文字列。 |
| [Reject not fitted values] (値が合わないためにリジェクト) | このチェックボックスを選択すると、char、varchar、binary、およびvarbinaryタイプのデータ行がターゲットテーブルに適合しない場合にリジェクトされます。<br><br>このプロパティは、Vertica6.0以降を使用している時のみ利用可能です。 |
| [Maximum number of rejected records] (リジェクトレコード数の上限) | このチェックボックスを選択して、その横に表示されるフィールドに、ロードが失敗するまでにリジェクトできるレコードの最大数を指定します。<br><br>このプロパティは、Vertica6.0以降を使用している時のみ利用可能です。 |
| [Stop and rollback if any row is rejected] (リジェクトされた行がある場合は停止してロールバック) | 行がリジェクトされた場合にデータをロードせずにロードを停止してロールバックする場合は、このチェックボックスを選択します。<br><br>このプロパティは、Vertica6.0以降を使用している時のみ利用可能です。 |
| [Don't commit] (コミットしない) | 結果を自動的にコミットせずに一括ロードトランザクションを実行する場合は、このチェックボックスを選択します。これは、単一のトランザクションで複数の一括ロードを実行する場合に役立ちます。<br><br>このプロパティは、Vertica6.0以降を使用している時のみ利用可能です。 |
| [Rejected data file] (リジェクトデータファイル) | リジェクトされた行が書き込まれるファイルを指定します。<br><br>このプロパティは、[Action on data] (データでのアクション)ドロップダウンリストから、[Bulk insert] (バルク挿入)が選択されている時のみ利用可能です。 |
| [Exception log file] (例外ログファイル) | リジェクトされた行が書き込まれるファイルを指定します。このログは、リジェクトされた各行がリジェクトされた理由を説明しています。<br><br>このプロパティは、[Action on data] (データでのアクション)ドロップダウンリストから、[Bulk insert] (バルク挿入)が選択されている時のみ利用可能です。 |
| [tStatCatcher Statistics] (tStatCatcher統計) | このチェックボックスを選択すると、ジョブレベルおよび各コンポーネントレベルでジョブ処理メタデータが収集されます。 |

## グローバル変数

| 変数 | 説明 |
| --- | --- |
| ACCEPTED\_ROW\_NUMBER | データベースに読み取られた行数。これはAfter変数で、整数を返します。 |
| REJECTED\_ROW\_NUMBER | リジェクトされた行数。これはAfter変数で、整数を返します。 |
| ERROR\_MESSAGE | エラー発生時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | Talend StudioとVerticaデータベースは、非常に高速で手頃なデータウェアハウスとデータマートアプリケーションを作成します。Verticaに接続するように*Talend Studio*を構成する方法は、[TalendおよびHPVerticaのヒントとテクニック](https://www.vertica.com/kb/Vertica-Integration-with-Talend-Connection-Guide/Content/Partner/Vertica-Integration-with-Talend-Connection-Guide.htm)をご覧ください。<br><br>このコンポーネントは、Verticaにデータを書き込む以下の2つの方法のどちらでも使えます。<br><br><ul> <li> <p><span>tVerticaOutputBulk</span>コンポーネントによって生成されたファイルからVerticaにデータを書き込むサブジョブのスタンドアロンコンポーネントとして使えます。</p> </li> <li> <p><span><span>[Row] (行)</span> &gt; <span>[Main] (メイン)</span></span>接続を介して<span>tFileInputRaw</span>コンポーネントをこれにリンクして、データをVerticaにフィードできます。この-方法では、<span>tFileInputRaw</span>コンポーネントは、<kbd>Stream the file</kbd>モードになっている必要があり、そのスキーマで定義されているオブジェクトタイプのカラムは1つのみでなければなりません。</p> </li> </ul> |
| [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)をご覧ください。 |