tMongoDBOutputの標準プロパティ - Cloud - 8.0

MongoDB

Version
Cloud
8.0
Language
日本語
Product
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発 > サードパーティーシステム > NoSQLコンポーネント > MongoDB
データガバナンス > サードパーティーシステム > NoSQLコンポーネント > MongoDB
データクオリティとプレパレーション > サードパーティーシステム > NoSQLコンポーネント > MongoDB
Last publication date
2024-02-28

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

標準tMongoDBOutputコンポーネントは、ビッグデータファミリーとデータベースNoSQLファミリーに属しています。

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

基本設定

[Use existing connection] (既存の接続を使用)

定義済みの接続の詳細を再利用する場合は、このチェックボックスをオンにして、[Component List] (コンポーネントリスト)ドロップダウンリストから、目的の接続コンポーネントを選択します。

[DB Version] (DBバージョン)

ドロップダウンリストで、使用したいデータベースのバージョンを選択します。

このフィールドは、[Use an existing connection] (既存の接続を使用)チェックボックスが選択されていない場合に利用できます。

[Use connection string] (接続文字列を使用)

このオプションを選択すると、MongoDB Atlas URIを使って接続を確立できます。右側のフィールドにURIを入力します。関連情報は、接続文字列のURI形式をご覧ください。

このオプションは、[DB Version] (DBバージョン)ドロップダウンリストからMongoDB 4.4.X and laterを選択する場合に利用できます。

注: このオプションは、Talendが提供するR2021-12以降のTalend Studioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。

[Use replica set address] (レプリカセットのアドレスの使用)

このチェックボックスをオンにすると、[Replica address] (レプリカアドレス)テーブルが表示されます。

[Replica address] (レプリカアドレス)テーブルでは、フェイルオーバー用に複数のMongoDBデータベースサーバーを定義できます。

[Use existing connection] (既存の接続を使用)チェックボックスが選択されていない場合に使用できます。

[Server] (サーバー)[Port] (ポート)

データベースサーバーのIPアドレスとリスニングポート番号を入力します。

これらのフィールドは、[Use existing connection] (既存の接続を使用)チェックボックスと[Use replica set address] (レプリカセットアドレスを使用)チェックボックスが選択されていない場合に利用できます。

[Database] (データベース)

データベースの名前を入力します。

[Use SSL connection (Configure the SSL authentication in tSetKeystore or in Studio preferences)] (SSL接続を使用(tSetKeystoreまたはStudio設定でSSL認証を構成))

SSLまたはTLS暗号化接続を有効にする場合は、このチェックボックスをオンにします。

次に、同じジョブ内のtSetKeyStoreコンポーネントを使用して暗号化情報を指定する必要があります。

SSL接続はMongoDBのバージョン2.4 +でのみ利用可能です。

[Set write concern] (書き込み確認の設定)

このチェックボックスをオンにすると、書き込み操作で要求される確認応答のレベルを設定できます。この操作のレベルを選択する必要があります。

詳細は、http://docs.mongodb.org/manual/core/write-concern/で、関連するMongoDBのドキュメンテーションをご覧ください。

[Bulk write] (バルク書き込み)

データを一括で挿入、アップデート、削除する場合は、このチェックボックスをオンにします。この機能は、使っているMongoDBのバージョンが 2.6+の場合のみ利用できます。

[Ordered] (順序指定)または[Unordered] (順序指定なし)を選択して、MongoDBデータベースがTalend Studioによって送信されたデータを処理する方法を定義する必要があります。
  • [Ordered] (順序指定)を選択すると、MongoDBはクエリーを順番に処理します。

  • [Unordered] (順序指定なし)を選択すると、MongoDBは、個々の操作がバルク書き込みに挿入された順序を維持せずに、バルク書き込み操作を最適化します。

[Bulk write size] (バルク書き込みサイズ)フィールドに、MongoDBによって処理する各クエリーグループのサイズを入力します。MongoDBのドキュメンテーションでは、このサイズに関する一部の制限と予想される動作が説明されています。詳細は、http://docs.mongodb.org/manual/core/bulk-write-operations/をご覧ください。

[Required authentication] (必要な認証)

このチェックボックスをオンにすると、データベース認証が有効になります。

Kerberosを使用していない場合は、[Authentication mechanism] (認証メカニズム)ドロップダウンリストにリスト表示されているメカニズムのうち、[NEGOTIATE]が推奨されます。使用しているMongoデータベースバージョンに最もよく対応している認証メカニズムが自動的に選択されるためです。

SCRAM-SHA-256認証メカニズムがMongoDB 4.x以降のみにサポートされているため、SCRAM-SHA-256 SASLオプションは[DB Version] (データベースバージョン)ドロップダウンリストから、MongoDB 4.4.X and laterが選択されている時のみ利用できます。

注: X509オプションは、Talendが提供するR2021-12以降のTalend Studioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。

このリスト内の他のメカニズムについては、MongoDBのドキュメンテーションでMongoDB Authenticationをご覧ください。

[Set Authentication database] (認証データベースの設定)

MongoDBへの接続に使用するユーザー名がMongoDBの特定の認証データベース内で作成済みの場合は、このチェックボックスをオンにして、表示される[Authentication database] (認証データベース)フィールドに、この認証データベースの名前を入力します。

MongoDB認証データベースについては、User Authentication databaseをご覧ください。

[Username] (ユーザー名)[Password] (パスワード)

データベースユーザー認証データを入力します。

パスワードを入力するためには、パスワードフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにパスワードを二重引用符で囲んで入力して[OK]をクリックし、設定を保存します。

このフィールドは、[Required authentication] (必要な認証)チェックボックスが選択されている場合に利用できます。

[Authentication mechanism] (認証方式)ドロップダウンリストから、Kerberosをセキュリティシステムに選択した場合は、[Username] (ユーザー名)[Password] (パスワード)のフィールドではなく、[User principal] (プリンシパルを使用)[Realm] (レルム)[KDC server] (KDCサーバー)のフィールドに入力します。

[Collection] (コレクション)

MongoDBデータベースにコレクションの名前を入力します。

[Drop collection if exist] (存在する場合はコレクションをドロップ)

このチェックボックスをオンにすると、既に存在する場合はコレクションが削除されます。

[Action on data] (データでのアクション)

以下の操作を実行できます:
  • [Insert] (挿入): ドキュメントを挿入します。

  • [Set] (設定): 既存のドキュメントの既存のフィールドを変更し、このドキュメント内に存在しない場合はフィールドを追加します。

    使用するコレクション内のすべてのドキュメントにこのアクションを適用する必要がある場合は、表示される[Update all document] (すべてのドキュメントをアップデート)チェックボックスをオンにします。これがオフの場合、最初のドキュメントのみがアップデートされます。

  • [Update] (アップデート): 既存のドキュメントを受信データに置換しますが、これらのドキュメントのテクニカルIDは保持されます。

  • [Upsert]: 存在しない場合はドキュメントを挿入しますが、存在する場合は[Update] (アップデート)と同じルールを適用します。

  • [Upsert with set] (セットでアップサート): 存在しない場合はドキュメントを挿入しますが、存在する場合は[Set] (セット)と同じルールを適用します。

    使用するコレクション内のすべてのドキュメントにこのアクションを適用する必要がある場合は、表示される[Update all document] (すべてのドキュメントをアップデート)チェックボックスをオンにします。これがオフの場合、最初のドキュメントのみがアップデートされます。

  • [Delete] (削除): ドキュメントを削除します。

    使用するコレクション内のすべてのドキュメントにこのアクションを適用する必要がある場合は、表示される[Delete all documents] (ドキュメントをすべて削除)チェックボックスをオンにします。これがオフの場合は1つのドキュメントしか削除されません。

[Schema] (スキーマ)

スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。

  • [Built-in] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。

  • [Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。

[Edit Schema] (スキーマを編集)

スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。

  • [View schema] (スキーマを表示): スキーマのみを表示する場合は、このオプションを選択します。

  • [Change to built-in property] (組み込みのプロパティに変更): ローカルで変更を行うためにスキーマを組み込みに変更する場合は、このオプションを選択します。

  • [Update repository connection] (リポジトリー接続をアップデート): リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。

    変更を現在のジョブにのみ反映する場合は、変更後、[No] (いいえ)を選択し、[Repository Content] (リポジトリーコンテンツ)ウィンドウで再びこのスキーマのメタデータを選択します。

[Sync columns] (カラムを同期)をクリックすると、ジョブで接続している先行コンポーネントからスキーマが取得されます。

このコンポーネントによって、コレクションにドキュメントを挿入する際にダイナミックスキーマがサポートされます。ダイナミックスキーマ機能を使用するためには、スキーマに含まれているカラムが1つだけであることを確認し、[DB column] (DBカラム)*に、そして[Type] (タイプ)文字列に(入力タイプが文字列の場合)、またはオブジェクトに(入力タイプがオブジェクトの場合)に設定する必要があります。

注:
  • ダイナミックスキーマ機能は、[Action on data] (データでのアクション)ドロップダウンリストで[Insert] (挿入)が選択されている場合のみ利用できます。
  • ダイナミックスキーマは、Talendが提供する8.0.1-R2022-07以降のTalend Studioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。

Mapping

このコンポーネント用に定義されたスキーマの各カラムは、読み取るドキュメントのフィールドを表します。このテーブルで、これらのフィールドの親ノードがあればそれを指定する必要があります。

たとえば、次のようなドキュメントがあるとします。
{
               _id: ObjectId("5099803df3f4948bd2f98391"),
               person: { first: "Joe", last: "Walker" }
            }
フィールドfirstおよびlastには親ノードpersonがありますが、_idフィールドには親ノードがありません。したがって、完了すると、この[Mapping]テーブルは次のようになります。
Column     Parent node path
_id
first       "person"
last        "person"

[Updatable] (アップデート可能)および[Insertable] (挿入可能): 名前が適用されるので、フィールドをアップデートおよび挿入できるかどうかを指定します。これらの2つのカラムは、[Action on data] (データでのアクション)ドロップダウンリストから[Upser with set] (セットでアップサート)を選択すると表示されます。

[Advanced settings] (詳細設定)[Generate JSON Document] (JSONドキュメントを生成)チェックボックスがオンになっている場合は利用できません。

[Die on error] (エラー発生時に強制終了)

このチェックボックスをオンにすると、エラー時に行をスキップし、エラーの発生していない行の処理が完了されます。デフォルトでは選択されていません。

詳細設定

[Generate JSON Document] (JSONドキュメントを生成)

JSON設定のためにこのチェックボックスをオンにします。

[Configure JSON Tree] (JSONツリーを設定): [...]ボタンをクリックして、JSONツリー設定のインターフェイスを開きます。詳細は、JSONツリーを設定をご覧ください。
注: JSONオブジェクトをBSONオブジェクトに適用させるには、オブジェクトの前に_DOLLAR__を追加します。たとえば$oid_DOLLAR__oidに、$date_DOLLAR__dateになります。これによってMongoDB固有のオブジェクトが読み取られるようになり、文字列と見なされることありません。

[Create empty element if needed] (必要に応じて空のエレメント作成): XMLツリーエディターの[Related Column] (関連カラム)にNULL値がある場合、またはXMLノードに関連付けられているカラムがない場合、このオプションを実行すると予想される場所に開閉タグが作成されます。このチェックボックスはデフォルトで選択されています。

[Ignore service attributes for empty elements] (空のエレメントのサービス属性を無視する): このオプションを選択すると、入力ノードがnullであるにもかかわらずサービス属性(@type@class@arrayなど)を持つ場合に、コンポーネントがノードを生成することを防止できます。このオプションは、[Create empty element if needed] (必要に応じて空のエレメントを作成)オプションが選択されていない場合に利用可能です。

[Group by] (グループ基準): [+]ボタンをクリックして行を追加し、レコードを分類するための入力カラムを選択します。

[Remove root node] (ルートノードを削除): ルートノードを削除するには、このチェックボックスをオンにします。

[Data node] (データノード)[Query node] (クエリーノード) ([Update] (アップデート)アクションと[Upsert] (アップサート)アクションで利用可能): JSONツリーに設定されているデータノードとクエリーノードの名前を入力します。

警告:

これらのノードは、アップデートとアップサートのアクションに必須です。これらはデータベースには保管されませんが、アップデートとアップサートのアクションを有効にすることを目的としています。

[Node] (ノード) ([Set] (セット)アクションと[Upsert with set] (セットでアップサート)アクションで使用可能): 特定のJSONノードに対するアップデート操作を指定します。アップデート操作を追加するためには、このフィールドの下部にあるプラスボタンをクリックしてアップデート演算子を入力するか、[Node type] (ノードタイプ)カラムにあるドロップダウンリストからアップデート演算子を選択し、[Node reference] (ノード参照)カラムにノード名を二重引用符で囲んで入力します。アップデート演算子に関する情報は、アップデート演算子をご覧ください。
注: このフィールドは、Talendが提供するR2022-01以降のTalend Studioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。

[No query timeout] (クエリータイムアウトなし)

アイドルカーソルの非アクティブ状態が10分間続いた時にMongoデータベースサーバーがカーソルを停止することを防ぐ場合は、このチェックボックスをオンにします。この状況では、このカーソルの結果が枯渇するか、またはcursor.close()方式を使用して手動で閉じるまで、アイドルカーソルが開いたままとなります。

MongoDBのカーソルはクエリーの結果セットを指すポインターです。デフォルトでは、すなわち、このチェックボックスがオフの場合、Mongoデータベースサーバーは、メモリの過剰使用を避けるために、非アクティブ状態が特定の期間続くと、アイドルカーソルを自動的に停止します。MongoDBカーソルの詳細は、https://docs.mongodb.org/manual/core/cursors/をご覧ください。

[tStatCatcher Statistics] (tStatCatcher統計)

このチェックボックスをオンにすると、コンポーネントレベルでログデータを収集できます。

グローバル変数

グローバル変数

NB_LINE: 入力コンポーネントによって読み取られた行の数、または出力コンポーネントに転送された行の数。これはAfter変数で、整数を返します。

ERROR_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。

Flow変数はのコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。

フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。

変数の詳細は、コンテキストと変数を使用をご覧ください。

使用方法

使用ルール

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

制限事項

注:
  • 複数のドキュメントを一度にアップデートできる"multi"パラメーターは、サポートされていません。したがって、2つのドキュメントに同じキーがある場合、最初のドキュメントは常にアップデートされますが、2番目のドキュメントは決してアップデートされません。

  • アップデート操作では、キーはJSON配列にできません。