Apache Spark StreamingのtMongoDBLookupInputプロパティ
これらのプロパティは、Spark Streamingジョブのフレームワークで実行されているtMongoDBLookupInputを設定するために使われます。
Spark StreamingのtMongoDBLookupInputコンポーネントは、データベースファミリーに属しています。
このフレームワーク内のコンポーネントは、Talend Real Time Big Data PlatformおよびTalend Data Fabricで利用できます。
基本設定
[Property type] (プロパティタイプ) |
[Built-in] (組み込み)と[Repository] (リポジトリー)のいずれかです。 [Built-In] (組み込み): 一元的に保存されるプロパティデータはありません。 [Repository] (リポジトリー): プロパティが保存されているリポジトリーファイルを選択します。 |
[MongoDB configuration] (MongoDB設定) |
定義済みの接続の詳細を再利用する場合は、このチェックボックスをオンにして、[Component List] (コンポーネントリスト)ドロップダウンリストから、目的の接続コンポーネントを選択します。 |
[Schema] (スキーマ)と[Edit Schema] (スキーマを編集) |
スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。 スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。
データベースのカラムがJSONドキュメントで、ドキュメント全体を読み取る必要がある場合は、引用符を使用せずに[DB column] (DBカラム)内でアスタリスク(*)を付けます。 |
[Collection] (コレクション) |
使用するコレクションの名前を入力します。 MongoDBコレクションはRDBMSテーブルと同等であり、そこにはドキュメントが含まれています。 |
[Set read preference] (読み取り環境設定の設定) |
このチェックボックスをオンにして、[Read preference] (読み取り環境設定)ドロップダウンリストが表示されたら、読み取りオペレーションをダイレクトする必要のあるメンバーを選択します。 このチェックボックスをオフのままにすると、ジョブはデフォルトの読み取り環境設定を使用します。すなわち、レプリカセット内のプライマリーメンバーが使用されます。 詳細は、MongoDBのドキュメンテーションで複製とその読み取り環境設定に関する説明をご覧ください。 |
[Query] (クエリー) |
クエリーステートメントを指定して、[Collection] (コレクション)フィールドで指定したコレクションからドキュメントを選択します。 たとえば、以下のようにします
このコードでrow1は、tMongoDBLookupInputのリンクのラベルではなく、tMapに入るメイン行を表します。 クエリーの結果には、tMapで使用する結合キーに一致するレコードのみ含まれていなければなりません。言い換えれば、一致するレコードのみがルックアップフローに読み取られるSQLステートメントを作成するため、メインフローのスキーマをtMapで使用する必要があります。 この方式では、重複レコードはメモリに読み取られず、後続のコンポーネントに出力されます。 |
[Mapping] (マッピング) |
このコンポーネント用に定義されたスキーマの各カラムは、読み取るドキュメントのフィールドを表します。このテーブルで、これらのフィールドの親ノードがあればそれを指定する必要があります。 たとえば、次のようなドキュメントがあるとします。
{ _id: ObjectId("5099803df3f4948bd2f98391"), person: { first: "Joe", last: "Walker" } }フィールドfirstおよびlastには親ノードpersonがありますが、_idフィールドには親ノードがありません。したがって、完了すると、この[Mapping]テーブルは次のようになります。 Column Parent node path _id first "person" last "person" |
[Limit] (制限事項) |
取得するレコードの最大数を入力します。 |
詳細設定
[No query timeout] (クエリータイムアウトなし) |
アイドルカーソルの非アクティブ状態が10分間続いた時にMongoデータベースサーバーがカーソルを停止することを防ぐ場合は、このチェックボックスを選択します。この状況では、このカーソルの結果が枯渇するか、またはcursor.close()方式を使用して手動で閉じるまで、アイドルカーソルが開いたままとなります。 MongoDBのカーソルはクエリーの結果セットを指すポインターです。デフォルトでは、すなわち、このチェックボックスがオフの場合、Mongoデータベースサーバーは、メモリの過剰使用を避けるために、非アクティブ状態が特定の期間続くと、アイドルカーソルを自動的に停止します。MongoDBカーソルの詳細は、https://docs.mongodb.org/manual/core/cursors/ (英語のみ)をご覧ください。 |
使用方法
使用ルール |
このコンポーネントは、開始コンポーネントとして使用され、出力リンクを必要とします。 このコンポーネントは、MongoDBデータベースに接続するために同じジョブ内にあるtMongoDBConfigurationコンポーネントを使用する必要があります。tMongoDBConfigurationを使用するには、このコンポーネントと共にtMongoDBConfigurationコンポーネントをドロップし、このコンポーネントの[Basic settings] (基本設定)を指定する必要があります。 このコンポーネントは、所属するSpark Streamingのコンポーネントのパレットと共に、Spark Streamingジョブを作成している場合にだけ表示されます。 特に明記していない限り、このドキュメントのシナリオでは、標準ジョブ、つまり従来の Talend データ統合ジョブだけを扱います。 |
[Spark Connection] (Spark接続) |
[Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリーを指定する必要があります。
この接続は、ジョブごとに有効になります。 |