Apache Spark StreamingのtElasticSearchLookupInputプロパティ - 7.3

ElasticSearch

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

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

Spark StreamingtElasticSearchLookupInputコンポーネントは、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_enblogpost_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エグゼキューターに、同時に開いたままにする接続の数を制御するための接続プールを設定するために使われます。以下の接続プールパラメーターに与えられているデフォルト値は、ほとんどのユースケースでそのまま利用できます。

  • [Max total number of connections] (接続の最大合計数): 同時に開いたままにしておくことができる接続(アイドルまたはアクティブ)の最大数を入力します。

    デフォルトの数は8です。-1を入力すると、同時に開いておける接続の数が無制限となります。

  • [Max waiting time (ms)] (最大待機時間(ミリ秒)): 接続使用の要求に対して接続プールからレスポンスが返されるまでの最大待機時間を入力します。デフォルトでは-1(無制限)となっています。

  • [Min number of idle connections] (アイドル接続の最小数): 接続プール内に維持されるアイドル接続(使用されていない接続)の最小数を入力します。

  • [Max number of idle connections] (アイドル接続の最大数): 接続プール内に維持されるアイドル接続(使用されていない接続)の最大数を入力します。

[Evict connections] (接続を無効化)

接続プール内の接続を破棄する条件を定義する場合は、このチェックボックスをオンにします。オンにすると、以下のフィールドが表示されます。

  • [Time between two eviction runs] (2つの削除実行の間隔): コンポーネントが接続のステータスを確認し、アイドル状態の接続を破棄するまでの間隔(ミリ秒)を入力します。

  • [Min idle time for a connection to be eligible to eviction] (接続が削除可能になるまでの最小アイドル時間): アイドル接続が破棄されるまでの間隔(ミリ秒)を入力します。

  • [Soft min idle time for a connection to be eligible to eviction] (接続が削除可能になるまでのソフト最小アイドル時間): このパラメーターの機能は[Min idle time for a connection to be eligible to eviction] (接続が削除可能になるまでの最小アイドル時間)と同じですが、[Min number of idle connections] (アイドル接続の最小数)フィールドで定義したアイドル接続の最小数が維持されます。

使用方法

使用ルール

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

tElasticSearchConfigurationコンポーネントを同じジョブにドロップして、ElasticSearchに接続させます。次に、[Use an existing configuration] (既存の設定を使う)チェックボックスをオンにして、使用するtElasticSearchConfigurationコンポーネントを選択する必要があります。
  • Sparkジョブ用のコンポーネントは、Talendバージョン6.4.2までのElasticsearchをサポートしています。

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

特に明記していない限り、このドキュメントのシナリオでは、標準ジョブ、つまり従来の 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] (スタンドアロンモード): クラスターで使われているファイルシステム(tHDFSConfiguration Apache Spark BatchtS3Configuration Apache Spark Batchなど)に対応する設定コンポーネントを使用します。

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

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