# tCosmosDBSQLAPIOutput

SQL APIを介して、前のコンポーネントからの入力フローに基づいてCosmosデータベースコレクションでドキュメントを挿入、更新、アップサート、削除します。

## tCosmosDBSQLAPIOutputの標準プロパティ

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

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

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

## 基本設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [Property type] (プロパティタイプ) | [Built-in] (組み込み)と[Repository] (リポジトリー)のいずれかです。<br><br><ul> <li> <span>[Built-In] (組み込み)</span>: 一元的に保存されるプロパティデータはありません。</li> <li> <span>[Repository] (リポジトリー)</span>: プロパティが保管されるリポジトリーファイルを選択します。後続フィールドは、取得されたデータを使用して自動的に入力されます。</li> </ul> |
| [Edit Schema] (スキーマを編集) | スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。<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><br><br>このコンポーネントによって、コレクションにドキュメントを挿入する際にダイナミックスキーマがサポートされます。ダイナミックスキーマ機能を使用するためには、コレクションにパーティションキーが存在しないこと、そしてスキーマに含まれているカラムが1つだけであることを確認し、[DB column] (DBカラム)を\*に、そして[Type] (タイプ)を文字列に(入力タイプが文字列の場合)、またはオブジェクトに(入力タイプがオブジェクトの場合)に設定する必要があります。<br><br>情報メモ注:<br><br><ul> <li>ダイナミックスキーマ機能は、<span>[Action on data] (データでのアクション)</span>ドロップダウンリストで<kbd>[Insert] (挿入)</kbd>が選択されている場合のみ利用できます。</li> <li>ダイナミックスキーマは、<span>Talend</span>が提供する8.0.1-R2024-04以降の<span>Talend Studio</span>マンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。</li> </ul> |
| URI | CosmosユーザーアカウントのURIを入力します。フィールドでプロンプトが表示されると、CosmosデータベースユーザーアカウントのURIはhttps://{アカウント名}.document.azure.com:443という形式になります。URIは、[Azure Portal]の[Keys] (キー)ペインで取得できます。関連情報は、[Create an Azure Cosmos DB account](https://docs.microsoft.com/en-us/azure/cosmos-db/create-cosmosdb-resources-portal)をクリックしてください。 |
| [Primary key] (プライマリキー) | Cosmosユーザーアカウントのプライマリキーを入力します。プライマリキーは、[Azure Portal]の[Keys] (キー)ペインで取得できます。関連情報は、[Create an Azure Cosmos DB account](https://docs.microsoft.com/en-us/azure/cosmos-db/create-cosmosdb-resources-portal)をクリックしてください。<br><br>プライマリキーを入力するには、[Primary key] (プライマリキー)フィールドの横にある[...]ボタンをクリックし、[Enter a new password] (新しいパスワードを入力)ダイアログボックスを表示させ、テキストフィールドにプライマリキーを入力して[OK]をクリックします。プライマリキーは、[pure password] (純粋なパスワード)モードではJSON文字列で、[Java mode] (Javaモード)ではJava式として入力できます。テキストフィールドの上部にある[switch to Java mode] (Javaモードに切り替え)または[switch to pure password mode] (純粋なパスワードに切り替え)をクリックすることで、2つのモードの間で切り替えられます。<br><br>情報メモ注:<br><br><ul> <li>この2つのパスワードモードは、<span>Talend</span>が提供する8.0.1 R2022-05以降の<span>Talend Studio</span>マンスリーアップデートをインストール済みである時のみ利用可能です。詳細は管理者にお問い合わせください。</li> <li><span>Talend</span>が提供する8.0.1 R2022-05以降の<span>Talend Studio</span>マンスリーアップデートがインストールされていない場合は、<span>[Java mode] (Javaモード)</span>でのみプライマリキーを入力できます。 </li> </ul> |
| [Database ID] (データベースID) | データベースの名前を入力します |
| [Collection ID] (コレクション ID) | コレクション名を入力します。 |
| 存在しない場合はコレクションを作成します | このオプションをオンにすると、コレクションが存在しない場合にコレクションIDフィールドで指定されたコレクションを作成できます。このオプションは、[Data action] (データアクション)ドロップダウンリストから[Update] (アップデート)または[Delete] (削除)が選択されている場合に利用できます。 |
| データのアクション | 次のいずれかのオプションを選択します。<br><br><ul> <li> <p> <span>[Insert] (挿入)</span>: ドキュメントを挿入します。</p> </li> <li> <p> <span>[Update] (アップデート)</span>: 既存のドキュメントを受信データに置換しますが、これらのドキュメントのテクニカルIDは保持されます。</p> </li> <li> <p> <span>[Upsert]</span>: 存在しない場合はドキュメントを挿入しますが、存在する場合は<span>[Update] (アップデート)</span>と同じルールを適用します。</p> </li> <li> <p> <span>[Delete] (削除)</span>: ドキュメントを削除します。</p> </li> </ul> |
| Availability-note[Deprecated](https://help.talend.com/r/en-US/Cloud/labels-on-talend-help-center/availability-deprecated)<br><br>このコンテンツは非推奨になりました。<br><br>[Auto ID generation] (自動ID生成) | このオプションを選択すると、処理されるドキュメントのIDを生成できます。<br><br>情報メモ非推奨: 8.0.1-R2024-03マンスリーリリース以降、このオプションは非推奨です。 |

## 詳細設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [tStatCatcher Statistics] (tStatCatcher統計) | このチェックボックスをオンにすると、コンポーネントレベルでログデータを収集できます。 |
| [Connection mode] (接続モード) | 使用する接続モードを指定します。GatewayとDirectHttpsの2つのオプションを利用できます。関連情報を参照するには、[ConnectionMode](https://docs.microsoft.com/en-us/java/api/com.microsoft.azure.cosmosdb.connectionmode?view=azure-java-legacy)をクリックしてください。 |
| [Max connection pool size] (最大接続プールサイズ) | 最大接続プールサイズを設定するために使われます。デフォルトは1000です。 |
| [Consistency level] (一貫性レベル) | 一貫性レベルを設定するために使われます。関連情報は、 [\[Consistency levels\] (一貫性レベル)](https://docs.microsoft.com/en-us/azure/cosmos-db/consistency-levels) をクリックしてください。 |
| [Partition key] (パーティションキー) | ドキュメントを削除するパーティションのキーを入力します。パーティションキーには、Nullでない値が推奨されます。<br><br>8.0.1-R2024-03マンスリーリリースでは、3種類のパーティションキー(Boolean、Double、String )を入力できます。パーティションキーは3階層まで設定可能です。詳細は、Microsoftのドキュメンテーションで[Hierarchical partition keys in Azure Cosmos DB](https://learn.microsoft.com/en-us/azure/cosmos-db/hierarchical-partition-keys?tabs=java-v4%2Cbicep)をご覧ください。<br><br>このオプションは、[Create collection if not exist] (コレクションが存在しない場合は作成)チェックボックスが選択した場合に利用できます。 |

## [Global Variables] (グローバル変数)

| 変数 | 説明 |
| --- | --- |
| ERROR\_MESSAGE | エラー発生時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。 |
| NB\_LINE | 処理された行数。これはAfter変数で、整数を返します。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | tCosmosDBSQLAPIOutput、ジョブ内の先行するコンポーネントからのフローをベースに、データベースのコレクションで定義されているアクションを実行します。 |
| **認証付きHTTPSプロキシにおけるCosmos DBの制限事項** | HTTPプロキシとHTTPSプロキシはtSetProxyコンポーネントで動作しますが、次の点に注意してください。<br><br><ul> <li>このコンポーネントの<span>tSetProxy</span>の<span>[Use authorization] (認証を使用する)</span>オプションを使用した場合、認証付きのHTTPSプロキシは動作しません。これは、Cosmos DB SDKがHTTPSプロキシトンネル接続にJavaの<span>[Authenticator] (認証)</span>を使用せず、代わりにJVMシステム プロパティに依存しているためです。</li> <li>このコンポーネントを認証付きHTTPSプロキシで動作させるには、<span><span>[Run] (実行)</span><abbr> &gt; </abbr><span>[Advanced Settings] (詳細設定)</span><abbr> &gt; </abbr><span>[JVM arguments] (JVM引数)</span></span> でプロキシ認証情報をJVM引数として手動で設定する必要があります。 <pre><code><pre><code><code>-Dhttps.proxyUser=&lt;username&gt;-Dhttps.proxyPassword=&lt;password&gt;</code></code></pre></code></pre></li> </ul><br><br>追加の制限事項: プロキシ設定はグローバルなJVMシステムプロパティを通じて管理されるため、同じジョブ内で異なるコンポーネントに複数の異なるプロキシ設定を使用することは推奨されません。設定が意図したとおりに機能しない可能性があります。 |