# tSingleStoreOutput

ジョブ内の先行するコンポーネントからのフローをベースに、テーブルに含まれているデータで定義されているアクションを実行します。

tSingleStoreOutputは、JDBC APIに接続された任意のタイプのデータベースでのエントリーの書き込み、アップデート、変更、抑制を行います。

## tSingleStoreOutputの標準プロパティ

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

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

このフレームワーク内のコンポーネントは、すべてのサブスクリプションベースのTalend製品で利用できます。

## 基本設定

| プロパティ | 説明 |
| --- | --- |
| データベース | 目的のデータベースタイプをリストから選択し、[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><br><br>[Connection Component] (接続コンポーネント)ドロップダウンリストから、他の接続コンポーネントを選択した場合、このプロパティは、利用できません。 |
| ![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Save_Icon.png) | このアイコンをクリックすると、データベース接続ウィザードが開き、コンポーネント[Basic settings] (基本設定)ビューに設定したデータベース接続パラメーターが保存されます。<br><br>データベース接続パラメーターの設定と保存の詳細は、[データベースメタデータを一元管理](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/centralizing-database-metadata)をご覧ください。 |
| [Connection Component] (接続コンポーネント) | このコンポーネントで再利用するデータベース接続を開くコンポーネントを選択します。 |
| JDBC URL | 使用するデータベースのJDBC URL。たとえば、Amazon RedshiftデータベースのJDBC URLはjdbc:redshift://endpoint:port/databaseです。 |
| [Drivers] (ドライバー) | 必要なドライバーJARをロードするには、このテーブルに入力してください。これを行うには、テーブルの下の[+]ボタンをクリックして、必要に応じてドライバーJAR用行数を増やします。セルを選択し、セルの右側にある[...]ボタンをクリックして、[Module] (モジュール)ダイアログボックスを開くと使用するドライバーJARを選択できます。たとえば、RedshiftデータベースのドライバーjarはRedshiftJDBC41-1.1.13.1013.jarです。<br><br>詳細は、[\[Importing a database driver\] (データベースドライバのインポート)](https://help.qlik.com/talend/r/ja-JP/8.0/components/jdbc/importing-database-driver)をご覧ください。 |
| [Driver Class] (ドライバークラス) | 指定したドライバーのクラス名を二重引用符で囲んで入力します。たとえば、RedshiftJDBC41-1.1.13.1013.jarドライバーの場合、入力する名前はcom.amazon.redshift.jdbc41.Driverになります。 |
| [User Id] (ユーザーID)と[Password] (パスワード) | データベースユーザー認証データ。<br><br>パスワードを入力するためには、パスワードフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにパスワードを二重引用符で囲んで入力して[OK]をクリックし、設定を保存します。 |
| [Table Name] (テーブル名) | データが書き込まれるテーブルの名前を入力します。 |
| データのアクション | 定義されたテーブルのデータに対して実行する操作を選択します。<br><br><ul> <li> <p> <span>[Insert] (挿入)</span>: テーブルに新しいエントリーを追加します。重複が見つかると、ジョブは停止します。</p> </li> <li> <p> <span>[Update] (アップデート)</span>: 既存のエントリーが変更されます。</p> </li> <li> <p> <span>[Insert or update] (挿入またはアップデート)</span>: インデックスプールに新しいレコードを挿入します。指定された参照を持つレコードが既に存在する場合は、アップデートされます。</p> </li> <li> <p> <span>[Update or insert] (アップデートまたは挿入)</span>: 指定された参照を使用してレコードをアップデートします。レコードがインデックスプールに存在しない場合は、新しいレコードが挿入されます。</p> </li> <li> <p> <span>[Delete] (削除)</span>: 入力フローに対応するエントリーを削除します。</p> </li> </ul><br><br>情報メモ警告:<br><br>[Update] (アップデート)操作と[Delete] (削除)操作のベースとなるプライマリキーとして、カラムを少なくとも1つ指定する必要があります。それには、[Edit Schema] (スキーマを編集)をクリックし、プライマリキーに指定するカラムの横にあるチェックボックスをオンにします。高度な設定を行う場合は、[Advanced settings] (詳細設定)ビューをクリックして、[Update] (アップデート)操作と[Delete] (削除)操作のプライマリキーを同時に定義できます。これを設定するには、以下のようにします: [Use field options] (フィールドオプションを使う)チェックボックスをオンにし、[Key in update column] (アップデートカラムの入力)で、アップデート操作のベースとして使うカラム名の横にあるチェックボックスをオンにします。削除操作の[Key in delete column] (削除カラムのキー)でも同じようにします。 |
| テーブルのデータを消去 | 定義されたアクションを実行する前にテーブル内のデータをクリアするには、このチェックボックスをオンにします。 |
| [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> |
| [Guess Schema] (推測スキーマ) | このボタンをクリックすると、データベーステーブルのカラムの設定に基づいてスキーマカラムが生成されます。 |
| [Die on error] (エラー発生時に強制終了) | このチェックボックスを選択すると、エラー発生時にジョブの実行が停止されます。<br><br>エラーの発生した行をスキップし、エラーが発生していない行の処理を完了するには、このチェックボックスをオフにします。<br><br>エラーがスキップされる際、Row &gt; Reject接続を使って、エラー行を収集できます。 |
| [Specify a data source alias] (データソースエイリアスを指定) | このチェックボックスを選択し、[Data source alias] (データソースエイリアス)フィールドが表示されたら、データソース設定で定義した共有接続プールを使用するために、 Talend Runtime側で作成したデータソースのエイリアスを指定します。このオプションは、 Talend Runtime内にジョブをデプロイして実行する時にのみ機能します。<br><br>コンポーネント自体のデータベース設定を使用する場合、データソース接続はコンポーネントの末尾で閉じることになります。これを防ぐには、データソースエイリアスを指定して、共有データベース接続を使用してください。<br><br>[Connection Component] (接続コンポーネント)ドロップダウンリストから、他の接続コンポーネントを選択した場合、このプロパティは、利用できません。 |

## 詳細設定

| プロパティ | 説明 |
| --- | --- |
| [Commit every] (コミットする間隔) | ノードのバッチがデータベースにコミットされるまでに処理されているべき行数を指定します。<br><br>このオプションにより、トランザクションの質(ただしロールバックは含まない)、特に実行時のパフォーマンスの向上が保証されます。 |
| [Additional Columns] (追加のカラム) | このオプションにより、SQLファンクションを呼び出してカラムにアクションを実行できます。ただし、挿入、アップデート、削除のアクションでないこと、特定の事前処理を必要とするアクションでないことが条件です。ドロップの有無を問わず、データベーステーブルを作成する場合はこのオプションは提供されません。<br><br><ul> <li> <p> <span>[Name] (名前)</span>: 挿入するスキーマカラムの名前、または既存のカラムを置換するために使用されるスキーマカラムの名前。</p> </li> <li> <p> <span>[SQL expression] (SQL式)</span>: 関連するカラムを挿入または置換するために実行するSQLステートメント。</p> </li> <li> <p> <span>[Position] (位置)</span>: 参照カラムに対して実行されるアクションに従って、<kbd>[Before] (実行前)</kbd>、<kbd>[Replace] (置換)</kbd>、<kbd>[After] (実行後)</kbd>のいずれかを選択します。</p> </li> <li> <p> <span>[Reference column] (参照カラム)</span>: 挿入する、または置換する新しいカラムを見つけるために使用できる参照カラムの名前。</p> </li> </ul> |
| [Use field options] (フィールドオプションを使用) | このチェックボックスを選択し、表示される[Fields options] (フィールドオプション)テーブルで、対応するカラムのチェックボックスをオンにして、特にデータに対して複数のアクションが実行されている場合に、リクエストをカスタマイズします。<br><br><ul> <li> <span>[Key in update] (キー入力アップデート)</span>: データのアップデートに基づいて対応するカラムのチェックボックスをオンにします。</li> <li> <span>[Key in delete] (削除の入力)</span>: データ削除の基準とする対応するカラムのチェックボックスをオンにします。</li> <li> <p> <span>[Updatable] (アップデート可能)</span>: 対応するカラムのデータをアップデートできる場合は、チェックボックスをオンにします。</p> </li> <li> <p> <span>[Insertable]  (挿入可能)</span>: 対応するカラムのデータを挿入できる場合は、チェックボックスをオンにします。</p> </li> </ul> |
| [Debug query mode] (デバッグクエリーモード) | このチェックボックスを選択すると、データベースのエントリーの処理中に各ステップが表示されます。 |
| [Use Batch] (バッチを使用) | このチェックボックスを選択してデータ処理のバッチモードを有効に設定し、[Batch Size] (バッチサイズ)フィールドが表示されたら、各バッチで処理するレコード数を指定します。 |
| [tStatCatcher Statistics] (tStatCatcher統計) | このチェックボックスを選択すると、ジョブレベルおよび各コンポーネントレベルでジョブ処理メタデータが収集されます。 |
| [Enable parallel execution] (並列実行を有効化) | このチェックボックスを選択すると、複数のデータフローを同時に処理することにより、高速データ処理を実行できます。このフィーチャーは、データベースまたは複数の挿入を並行して処理するアプリケーションの機能と、関係するCPUの数に依存します。このチェックボックスをオンにして、表示される[Number of parallel executions] (並列実行の数)フィールドに必要な並列実行の数を指定する必要があります。<br><br>情報メモ注: 並列実行が有効になっている場合、グローバル変数を使用して戻り値を取得することはできません。 |

## グローバル変数

| 変数 | 説明 |
| --- | --- |
| ERROR\_MESSAGE | エラー発生時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。 |
| NB\_LINE | 処理された行数。これはAfter変数で、整数を返します。 |
| NB\_LINE\_INSERTED | 挿入された行数。これはAfter変数で、整数を返します。 |
| NB\_LINE\_UPDATED | アップデートされた行数。これはAfter変数で、整数を返します。 |
| NB\_LINE\_DELETED | 削除された行の数。これはAfter変数で、整数を返します。 |
| NB\_LINE\_REJECTED | リジェクトされた行数。これはAfter変数で、整数を返します。 |
| QUERY | 処理されるクエリーステートメント。これはFlow変数で、文字列を返します。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | このコンポーネントでは、データベースクエリーの柔軟性によるメリットが提供されており、使用可能なすべてのSQLクエリーが網羅されています。<br><br>このコンポーネントは、出力コンポーネントとして使用する必要があります。このコンポーネントを使って、データベース内のテーブル、またはSingleStoreテーブルのデータにアクションを実行できます。また、[Row] (行) &gt; [Rejects] (リジェクト)リンクを使用して、エラーのあるデータをフィルタリングするリジェクトフローを作成することもできます。tMysqlOutputの使用例については、[リジェクトリンクを使用してエラーデータを取得する](https://help.qlik.com/talend/r/ja-JP/8.0/components/mysql/tmysqloutput-tmap-tfileoutputdelimited-tfileinputdelimited-retrieving-data-in-error-with-reject-standard-component-this)をご覧ください。 |
| [Dynamic settings] (ダイナミック設定) | [+]ボタンをクリックしてテーブルに行を追加し、[Code] (コード)フィールドにコンテキスト変数を入力して、ジョブ内で計画した複数の接続からデータベース接続をダイナミックに選択します。この機能は、データストラクチャーが同じでデータベースが異なるデータベーステーブルにアクセスする必要がある場合、特に、Talend Studioを介さずにジョブをデプロイおよび実行する必要がある時など、ジョブの設定を変更できない環境で作業している場合に役立ちます。<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)をご覧ください。 |