# tCosmosDBOutputの標準プロパティ

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

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

このフレームワーク内のコンポーネントは、ビッグデータ対応のTalend 製品すべて、およびTalend Data Fabricで利用できます。

## 基本設定

| [Use existing connection] (既存の接続を使用) | 定義済みの接続の詳細を再利用する場合は、このチェックボックスをオンにして、[Component List] (コンポーネントリスト)ドロップダウンリストから、目的の接続コンポーネントを選択します。 |
| --- | --- |
| API | 使うデータベースAPIを選択します。定義が必要な対応するパラメーターが、[Component] (コンポーネント)ビューに表示されます。<br><br>このコンポーネントの現在のバージョンでは、MongoDB APIのみがサポートされています。このため、MongoDBデータベースはCosmosDBのコンポーネントのドキュメンテーションで頻繁に触れられています。 |
| [Use replica set address or multiple query routers] (レプリカセットのアドレスまたは複数クエリールーターを使用します) | このチェックボックスをオンにして[Server addresses] (サーバーアドレス)テーブルを表示します。<br><br>[Server addresses] (サーバーアドレス)テーブルで、接続先とするシャードMongoDBデータベースまたはMongoDBレプリカセットを定義します。 |
| [Server] (サーバー)と[Port] (ポート) | データベースサーバーのIPアドレスとリスニングポート番号を入力します。<br><br>[Use replica set address or multiple query routers] (レプリカセットのアドレスまたは複数クエリールーターを使用します)チェックボックスがオフの時に利用できます。 |
| [Database] (データベース) | 接続先とするMongoDBデータベースの名前を入力します。 |
| [Set write concern] (書き込み確認の設定) | このチェックボックスをオンにすると、書き込み操作に対して要求される確認応答のレベルを設定できます。この操作のレベルを選択する必要があります。<br><br>詳細は、http://docs.mongodb.org/manual/core/write-concern/ (英語のみ)で、関連するMongoDBのドキュメンテーションをご覧ください。 |
| [Bulk write] (バルク書き込み) | データを一括で挿入、アップデート、削除する場合は、このチェックボックスを選択します。この機能は、使っているMongoDBのバージョンが 2.6+の場合のみ利用できます。<br><br>[Ordered] (順序指定)または[Unordered] (順序指定なし)を選択して、MongoDBデータベースがStudioから送信されたデータを処理する方法を定義する必要があります。<br><br><ul> <li> <p><span>[Ordered] (順序指定)</span>を選択すると、MongoDBはクエリーを順番に処理します。</p> </li> <li> <p><span>[Unordered] (順序指定なし)</span>を選択すると、MongoDBは、個々の操作がバルク書き込みに挿入された順序を維持せずに、バルク書き込み操作を最適化します。</p> </li> </ul><br><br>[Bulk write size] (バルク書き込みサイズ)フィールドに、MongoDBによって処理する各クエリーグループのサイズを入力します。MongoDBのドキュメンテーションでは、このサイズに関する一部の制限と予想される動作が説明されています。詳細は、http://docs.mongodb.org/manual/core/bulk-write-operations/ (英語のみ)をご覧ください。 |
| [Authentication mechanism] (認証メカニズム) | Kerberosを使用していない場合は、[Authentication mechanism] (認証メカニズム)ドロップダウンリストにリスト表示されているメカニズムのうち、[NEGOTIATE]が推奨されます。使用しているMongoデータベースバージョンに最もよく対応している認証メカニズムが自動的に選択されるためです。<br><br>このリスト内の他のメカニズムについては、MongoDBのドキュメンテーションで[MongoDB Authentication](https://docs.mongodb.org/manual/reference/parameters/#param.authenticationMechanisms) (英語のみ)をご覧ください。 |
| [Set Authentication database] (認証データベースの設定) | MongoDBへの接続に使用するユーザー名がMongoDBの特定の認証データベース内で作成済みの場合は、このチェックボックスをオンにして、表示される[Authentication database] (認証データベース)フィールドに、この認証データベースの名前を入力します。<br><br>MongoDB認証データベースについては、[User Authentication database](https://docs.mongodb.org/manual/core/security-users/#user-authentication-database) (英語のみ)をご覧ください。 |
| [Username] (ユーザー名)と[Password] (パスワード) | DBユーザー認証データ。<br><br>パスワードを入力するには、パスワードフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにパスワードを二重引用符の間に入力し、OKをクリックして設定を保存します。<br><br>[Use authentication] (認証の利用)チェックボックスがオンの場合に使えます。<br><br>[Authentication mechanism] (認証方式)ドロップダウンリストでKerberosをセキュリティシステムに選択した場合は、[Username] (ユーザー名)と[Password] (パスワード)のフィールドではなく、[User principal] (プリンシパルを使用)、[Realm] (レルム)、[KDC server] (KDCサーバー)のフィールドに入力します。 |
| [Collection] (コレクション) | データベースのコレクションの名前。 |
| [Drop collection if exist] (存在する場合はコレクションをドロップ) | このチェックボックスをオンにすると、既に存在する場合はコレクションが削除されます。 |
| [Action on data] (データでのアクション) | 以下の操作を実行できます:<br><br><ul> <li> <p> <span>[Insert] (挿入)</span>: ドキュメントを挿入します。</p> </li> <li> <p> <span>[Set] (設定)</span>: 既存のドキュメントの既存のフィールドを変更し、このドキュメント内に存在しない場合はフィールドを追加します。 </p> <p>使用するコレクション内のすべてのドキュメントにこのアクションを適用する必要がある場合は、表示される<span>[Update all document] (すべてのドキュメントをアップデート)</span>チェックボックスをオンにします。これがオフの場合、最初のドキュメントのみがアップデートされます。</p> </li> <li> <p> <span>[Update] (アップデート)</span>: 既存のドキュメントを受信データに置換しますが、これらのドキュメントのテクニカルIDは保持されます。</p> </li> <li> <p> <span>[Upsert]</span>: 存在しない場合はドキュメントを挿入しますが、存在する場合は<span>[Update] (アップデート)</span>と同じルールを適用します。</p> </li> <li> <p> <span>[Upsert with set] (セットでアップサート)</span>: 存在しない場合はドキュメントを挿入しますが、存在する場合は<span>[Set] (セット)</span>と同じルールを適用します。             </p> <p>使用するコレクション内のすべてのドキュメントにこのアクションを適用する必要がある場合は、表示される<span>[Update all document] (すべてのドキュメントをアップデート)</span>チェックボックスをオンにします。これがオフの場合、最初のドキュメントのみがアップデートされます。</p> </li> <li> <p> <span>[Delete] (削除)</span>: ドキュメントを削除します。</p> <p>使用するコレクション内のすべてのドキュメントにこのアクションを適用する必要がある場合は、表示される<span>[Delete all documents] (ドキュメントをすべて削除)</span>チェックボックスをオンにします。これがオフの場合は1つのドキュメントしか削除されません。 </p> </li> </ul> |
| [Schema] (スキーマ)と[Edit schema] (スキーマを編集) | スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。<br><br>スキーマを変更するには[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>: リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。変更を現在のジョブにのみ反映する場合は、変更後、<span>[No] (いいえ)</span>を選択し、<span>[Repository Content] (リポジトリーコンテンツ)</span>ウィンドウで再びこのスキーマのメタデータを選択します。</p> </li> </ul><br><br>ジョブで接続された前のコンポーネントからスキーマを取得するには、[Sync columns] (カラムを同期)をクリックします。 |
|  | [Built-in] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。 |
|  | [Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。<br><br>再使用するスキーマに整数またはファンクションのデフォルト値が指定されている場合は、これらのデフォルト値を引用符で囲まないようにご注意ください。引用符で囲まれている場合は手動で削除します。<br><br>詳細は、Talend Studioユーザーガイドでテーブルスキーマに関連する説明をご覧ください。 |
| [Mapping] (マッピング) | このコンポーネント用に定義されたスキーマの各カラムは、読み取るドキュメントのフィールドを表します。このテーブルで、これらのフィールドの親ノードがあればそれを指定する必要があります。<br><br>たとえば、次のようなドキュメントがあるとします。<br><br>```<br>{<br>_id: ObjectId("5099803df3f4948bd2f98391"),<br>person: { first: "Joe", last: "Walker" }<br>}<br>```<br><br><br>フィールド*first*および*last*には親ノード*person*がありますが、*\_id*フィールドには親ノードがありません。したがって、完了すると、この[Mapping]テーブルは次のようになります。<br><br>```<br>Column     Parent node path<br>_id<br>first       "person"<br>last        "person"<br>```<br><br>[Advanced settings] (詳細設定)で[Generate JSON Document] (JSONドキュメントを生成)チェックボックスがオンになっている場合は利用できません。 |
| [Die on error] (エラー発生時に強制終了) | このチェックボックスはデフォルトでオフになっています。すなわち、エラーが発生した行をスキップし、エラーが発生していない行のプロセスを完了させます。 |

## 詳細設定

| [Generate JSON Document] (JSONドキュメントを生成) | JSON設定のためにこのチェックボックスをオンにします。<br><br>[Configure JSON Tree] (JSONツリーを設定): [...]ボタンをクリックして、JSONツリー設定のインターフェイスを開きます。詳細は、[JSONツリーを設定](https://help.qlik.com/talend/ja-JP/components/7.3/processing/configuring-a-json-tree)をご覧ください。<br><br>[Create empty element if needed] (必要に応じて空のエレメント作成): XMLツリーエディターの[Related Column] (関連カラム)にNULL値がある場合、またはXMLノードに関連付けられているカラムがない場合、このオプションを実行すると予想される場所に開閉タグが作成されます。このチェックボックスはデフォルトで選択されています。<br><br>[Ignore service attributes for empty elements] (空のエレメントのサービス属性を無視する): このオプションを選択すると、入力ノードがnullであるにもかかわらずサービス属性(@type、@class、@arrayなど)を持つ場合に、コンポーネントがノードを生成することを防止できます。このオプションは、[Create empty element if needed] (必要に応じて空のエレメントを作成)オプションが選択されていない場合に利用可能です。<br><br>情報メモ注: [Create empty element if needed] (必要に応じて空のエレメント作成)オプションと[Ignore service attributes for empty elements] (空のエレメントのサービス属性を無視する)オプションは、TalendのR2020-04以降のStudioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。<br><br>[Group by] (グループ基準): [+]ボタンをクリックして行を追加し、レコードを分類するための入力カラムを選択します。<br><br>[Remove root node] (ルートノードを削除): ルートノードを削除するには、このチェックボックスをオンにします。<br><br>[Data node] (データノード)と[Query node] (クエリーノード) (アップデートアクションとアップサートアクションで利用可能): JSONツリー上に設定されたデータノードとクエリーノードの名前を入力します。<br><br>これらのノードは、アップデートとアップサートのアクションに必須です。これらはデータベースには保管されませんが、更新とアップサートのアクションを有効にすることを目的としています。 |
| --- | --- |
| [No query timeout] (クエリータイムアウトなし) | アイドルカーソルの非アクティブ状態が10分間続いた時にMongoデータベースサーバーがカーソルを停止することを防ぐ場合は、このチェックボックスを選択します。この状況では、このカーソルの結果が枯渇するか、またはcursor.close()方式を使用して手動で閉じるまで、アイドルカーソルが開いたままとなります。<br><br>MongoDBのカーソルはクエリーの結果セットを指すポインターです。デフォルトでは、すなわち、このチェックボックスがオフの場合、Mongoデータベースサーバーは、メモリの過剰使用を避けるために、非アクティブ状態が特定の期間続くと、アイドルカーソルを自動的に停止します。MongoDBカーソルの詳細は、https://docs.mongodb.org/manual/core/cursors/ (英語のみ)をご覧ください。 |
| [tStatCatcher Statistics] (tStatCatcher統計) | このチェックボックスをオンにすると、コンポーネントレベルでログデータを収集できます。 |

## 使用方法

| **使用ルール** | tCosmosDBOutputは、ジョブ内の先行するコンポーネントからのフローをベースに、データベースのコレクションで定義されているアクションを実行します。 |
| --- | --- |
| 制限事項 | <ul> <li> <p>複数のドキュメントを一度にアップデートできる"multi"パラメーターは、サポートされていません。したがって、2つのドキュメントに同じキーがある場合、最初のドキュメントは常にアップデートされますが、2番目のドキュメントは決してアップデートされません。</p> </li> <li> <p>アップデート操作では、キーはJSON配列にできません。</p> </li> </ul> |