Apache Spark StreamingのtElasticSearchLookupInputプロパティ
これらのプロパティは、Spark Streamingジョブのフレームワークで実行されているtElasticSearchLookupInputを設定するために使われます。
Spark StreamingのtElasticSearchLookupInputコンポーネントは、ElasticSearchファミリーに属しています。
このフレームワーク内のコンポーネントは、Talend Real Time Big Data PlatformおよびTalend Data Fabricで利用できます。
基本設定
[Schema] (スキーマ)と[Edit schema] (スキーマを編集) |
スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。 |
[Use an existing configuration] (既存の設定を使用) |
定義済みの接続の詳細を再利用する場合は、このチェックボックスをオンにして、[Component List] (コンポーネントリスト)ドロップダウンリストから、目的の接続コンポーネントを選択します。 |
[Transport addresses] (住所の転送) |
コンポーネントを接続する必要のあるElasticSearchノードのアドレスを入力します。 Elasticsearchノードクライアントを使用するtElasticSearchOutputとは異なり、tElasticSearchLookupInputはElasticsearchトランスポートクライアントを使ってElasticsearchクラスターに接続します。これにより、tElasticSearchLookupInputはクラスターへの複数の接続をすばやく作成できます。 ElasticSearchノードクライアントとElasticSearchトランスポートクライアントについては、https://www.elastic.co/guide/en/elasticsearch/guide/current/_transport_client_versus_node_client.html (英語のみ)をご覧ください。 |
[Cluster name] (クラスター名) |
使用するElasticSearchクラスターの名前を入力します。 ElasticSearchノードクライアントとElasticSearchトランスポートクライアントについては、https://www.elastic.co/guide/en/elasticsearch/guide/current/_transport_client_versus_node_client.html (英語のみ)をご覧ください。 |
Index |
ドキュメントの読み取り先とするインデックスの名前を入力します。 インデックスは、Elastisearchシステム内のストレージにおける最大のユニットです。 |
Type (タイプ) |
読み取るドキュメントが属するタイプの名前を入力します。 たとえば、blogpost_enとblogpost_frをそれぞれ、指定された英語のブログ投稿とフランス語のブログ投稿を表す2つのタイプにできます。 ドキュメントタイプとする指定カラムの値を動的に使うことができます。そうする必要がある場合は、そのカラムの名前を波かっこ({})内に入力します(サンプル: {blog_author})。 |
クエリー |
このコンポーネントによって実行するElasticSearchクエリーを入力します。 クエリーを編集する際に、ElasticSearchによって要求される構文とJavaによって要求されるエスケープ文字を使い、クエリーを二重引用符で囲む必要があります。 たとえば、ElasticSearchのドキュメンテーションでのクエリー例は次のようになります。
es.query = { "query" : { "term" : { "user" : "costinl" } } } この[Query] (クエリー)フィールドには、同じクエリーを次のように書き込む必要があります。
"{ \"query\" : { \"term\" : {\"user\" : \"costinl\" } } }" クエリーの結果には、tMapで使用する結合キーに一致するレコードのみ含まれていなければなりません。言い換えれば、一致するレコードのみがルックアップフローに読み取られるSQLステートメントを作成するため、メインフローのスキーマをtMapで使用する必要があります。 この方式では、重複レコードはメモリに読み取られず、後続のコンポーネントに出力されます。 |
詳細設定
[Scroll time] (スクロール時間) |
入力バッチがElasticSearchから段階的にロードされる期間(ミリ秒単位)を入力します。 この期間は、クエリーが大量のバッチをもたらす場合にのみ役立ちます。ただし、ストリーミングモードの tMap は各行でデータをリロードするため、クエリーが適切に記述されていれば、巨大なバッチの生成を回避できます。 |
SSL/TLSの使用 |
SSLまたはTLS暗号化接続を有効にする場合は、このチェックボックスを選択します。 次に、同じジョブ内のtSetKeyStoreコンポーネントを使用して暗号化情報を指定する必要があります。 |
設定 |
アクションをさらにカスタマイズするには、Elasticsearchで受け入れられているパラメーターを追加します。 たとえば、es.mapping.idを[Key] (キー)カラムに、trueを[Value] (値)カラムに入力して、ドキュメントのフィールド/プロパティ名がドキュメントIDを含むようにします。入力する情報は二重引用符で囲む必要があります。 使えるパラメーターのリストは、https://www.elastic.co/guide/en/elasticsearch/hadoop/master/configuration.html (英語のみ)をご覧ください。 |
[Connection pool] (接続プール) |
このエリアでは、各Sparkエグゼキューターに、同時に開いたままにする接続の数を制御するための接続プールを設定するために使われます。以下の接続プールパラメーターに与えられているデフォルト値は、ほとんどのユースケースでそのまま利用できます。
|
[Evict connections] (接続を無効化) |
接続プール内の接続を破棄する条件を定義する場合は、このチェックボックスを選択します。オンにすると、以下のフィールドが表示されます。
|
使用方法
使用ルール |
このコンポーネントは、開始コンポーネントとして使用され、出力リンクを必要とします。 tElasticSearchConfigurationコンポーネントを同じジョブにドロップして、ElasticSearchに接続させます。次に、[Use an existing configuration] (既存の設定を使う)チェックボックスをオンにして、使用するtElasticSearchConfigurationコンポーネントを選択する必要があります。
このコンポーネントは、所属するSpark Streamingのコンポーネントのパレットと共に、Spark Streamingジョブを作成している場合にだけ表示されます。 特に明記していない限り、このドキュメントのシナリオでは、標準ジョブ、つまり従来の Talend データ統合ジョブだけを扱います。 |
[Spark Connection] (Spark接続) |
[Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリーを指定する必要があります。
この接続は、ジョブごとに有効になります。 |