Apache Spark BatchのtMongoDBOutputプロパティ - 7.3

MongoDB

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

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

Spark Batch tMongoDBOutputコンポーネントはデータベースファミリーのコンポーネントです。

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

基本設定

[Property type] (プロパティタイプ)

[Built-In] (組み込み)または[Repository] (リポジトリー)のいずれか。

[Built-In] (組み込み): プロパティデータは一元的に保存されません。

[Repository] (リポジトリー): プロパティを保存するリポジトリーファイルを選択します。

[MongoDB configuration] (MongoDB設定)

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

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

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

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

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

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

  • [Update repository connection] (リポジトリー接続を更新): リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。変更を現在のジョブにのみ反映する場合は、変更後、[No] (いいえ)を選択し、[Repository Content] (リポジトリーのコンテンツ)ウィンドウで再びこのスキーマのメタデータを選択します。

データベースのカラムがJSONドキュメントで、ドキュメント全体を読み取る必要がある場合は、引用符を使用せずに[DB column] (DBカラム)内でアスタリスク(*)を付けます。

Collection (コレクション)

使用するコレクションの名前を入力します。

MongoDBコレクションはRDBMSテーブルと同等であり、そこにはドキュメントが含まれています。

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

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

詳細は、http://docs.mongodb.org/manual/core/write-concern/で、関連するMongoDBのドキュメントを参照してください。

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

以下の操作を実行できます:

  • [Insert] (挿入): ドキュメントを挿入します。

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

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

    [Mapping]テーブル内に指定する親ノードに新しいフィールドを追加する必要がある場合は、[Append to parent] (親に追加)を選択します。このチェックボックスをオフのままにすると、この新しいフィールドは更新するドキュメントのルートに追加されます。

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

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

    [Mapping]テーブル内に指定する親ノードに新しいフィールドを追加する必要がある場合は、[Append to parent] (親に追加)を選択します。このチェックボックスをオフのままにすると、この新しいフィールドは更新するドキュメントのルートに追加されます。

Mapping (マッピング)

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

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

詳細設定

[Advanced Hadoop MongoDB properties] (高度なHadoop MongoDBのプロパティ)

プロパティを追加して、tMongoDBOutputにデータの書き込み時に実行させる追加のオペレーションを定義します。

使用可能なプロパティは、MongoDB Connector for Hadoopにリスト表示され、説明されています。

使用方法

使用ルール

このコンポーネントは終了コンポーネントとして使用され、入力リンクを必要とします。

このコンポーネントは、MongoDBデータベースに接続するために同じジョブ内にあるtMongoDBConfigurationコンポーネントを使用する必要があります。tMongoDBConfigurationを使用するには、このコンポーネントと共にtMongoDBConfigurationコンポーネントをドロップし、このコンポーネントの[Basic settings] (基本設定)を指定する必要があります。

このコンポーネントは、所属するSpark Batchコンポーネントのパレットと共に、Spark Batchジョブを作成している場合にだけ表示されます。

特に明記していない限り、このドキュメントのシナリオでは、[Standard] (標準)ジョブ、つまり従来の Talend データ統合ジョブだけを扱います。

[Spark Connection] (Spark接続)

[Run] (実行)ビューの[Spark Configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリーを指定する必要があります。
  • Yarnモード(YarnクライアントまたはYarnクラスター):
    • Google Dataprocを使用している場合、[Spark configuration] (Spark設定)タブの[Google Storage staging bucket] (Google Storageステージングバケット)フィールドにバケットを指定します。

    • HDInsightを使用している場合、[Spark configuration] (Spark設定)タブの[Windows Azure Storage configuration] (Windows Azure Storage設定)エリアでジョブのデプロイメントに使用するブロブを指定します。

    • Altusを使用する場合は、[Spark configuration] (Spark設定)タブでジョブのデプロイにS3バケットまたはAzure Data Lake Storageを指定します。
    • Quboleを使用する場合は、ジョブにtS3Configurationを追加し、QuboleでS3システム内に実際のビジネスデータを書き込みます。tS3Configurationを使用しないと、このビジネスデータはQubole HDFSシステムに書き込まれ、クラスターをシャットダウンすると破棄されます。
    • オンプレミスのディストリビューションを使用する場合は、クラスターで使用されているファイルシステムに対応する設定コンポーネントを使用します。一般的に、このシステムはHDFSになるため、tHDFSConfigurationを使用します。

  • [Standalone mode] (スタンドアロンモード): tHDFSConfigurationtS3Configurationなど、クラスターで使われているファイルシステムに対応する設定コンポーネントを使用します。

    ジョブ内に設定コンポーネントがない状態でDatabricksを使用している場合、ビジネスデータはDBFS (Databricks Filesystem)に直接書き込まれます。

この接続は、ジョブごとに有効になります。