エンリッチプロセッサの設定
エンリッチプロセッサを設定するには、次の手順に従います:
- 1. 前提条件を確認します。
- 2. エンリッチデータを追加します。
- 3. エンリッチポリシーを作成します。
- 4. エンリッチポリシーを実行します。
- 5. インジェストパイプラインにエンリッチプロセッサを追加します。
- 6. ドキュメントをインジェストしてエンリッチします。
エンリッチプロセッサを設定したら、エンリッチデータを更新し、エンリッチポリシーを更新できます。
エンリッチプロセッサは複数の操作を実行し、インジェストパイプラインの速度に影響を与える可能性があります。
本番環境にデプロイする前に、エンリッチプロセッサをテストおよびベンチマークすることを強くお勧めします。
リアルタイムデータを追加するためにエンリッチプロセッサを使用することはお勧めしません。エンリッチプロセッサは、頻繁に変更されない参照データで最も効果的に機能します。
前提条件
エンリッチポリシーを使用するには、次の条件を満たす必要があります:
read
インデックスの権限が必要ですenrich_user
組み込みロール
エンリッチデータの追加
まず、1つ以上のソースインデックスにドキュメントを追加します。これらのドキュメントには、最終的に受信データに追加したいエンリッチデータが含まれている必要があります。
ソースインデックスは、ドキュメントおよびインデックス APIを使用して、通常のElasticsearchインデックスと同様に管理できます。
また、Beats、例えばFilebeatを設定して、ドキュメントを自動的にソースインデックスに送信およびインデックス化することもできます。Beatsの始め方を参照してください。
エンリッチポリシーの作成
ソースインデックスにエンリッチデータを追加した後、エンリッチポリシー作成APIまたはKibanaのインデックス管理を使用してエンリッチポリシーを作成します。
作成後、エンリッチポリシーを更新または変更することはできません。エンリッチポリシーの更新を参照してください。
エンリッチポリシーの実行
エンリッチポリシーが作成されたら、エンリッチポリシー実行APIまたはKibanaのインデックス管理を使用してエンリッチインデックスを作成する必要があります。
エンリッチインデックスには、ポリシーのソースインデックスからのドキュメントが含まれています。エンリッチインデックスは常に.enrich-*
で始まり、読み取り専用であり、強制マージされます。
エンリッチインデックスは、エンリッチプロセッサまたはES|QL ENRICH
コマンドによってのみ使用されるべきです。他の目的でエンリッチインデックスを使用することは避けてください。
インジェストパイプラインにエンリッチプロセッサを追加
ソースインデックス、エンリッチポリシー、および関連するエンリッチインデックスが整ったら、ポリシー用のエンリッチプロセッサを含むインジェストパイプラインを設定できます。
エンリッチプロセッサを定義し、パイプラインの作成または更新APIを使用してインジェストパイプラインに追加します。
エンリッチプロセッサを定義する際には、少なくとも次の情報を含める必要があります:
- 使用するエンリッチポリシー。
- 受信ドキュメントをエンリッチインデックス内のドキュメントに一致させるために使用されるフィールド。
- 受信ドキュメントに追加するターゲットフィールド。このターゲットフィールドには、エンリッチポリシーで指定された一致フィールドとエンリッチフィールドが含まれます。
また、max_matches
オプションを使用して、受信ドキュメントが一致できるエンリッチドキュメントの数を設定できます。デフォルトの1
に設定されている場合、データは受信ドキュメントのターゲットフィールドにJSONオブジェクトとして追加されます。それ以外の場合、データは配列として追加されます。
エンリッチを参照して、設定オプションの完全なリストを確認してください。
他のプロセッサをインジェストパイプラインに追加することもできます。
ドキュメントのインジェストとエンリッチ
これで、インジェストパイプラインを使用してドキュメントをエンリッチおよびインデックス化できます。
本番環境でパイプラインを実装する前に、最初にいくつかのテストドキュメントをインデックス化し、取得APIを使用してエンリッチデータが正しく追加されたことを確認することをお勧めします。
エンリッチインデックスの更新
作成後、エンリッチインデックスを更新またはドキュメントをインデックス化することはできません。代わりに、ソースインデックスを更新し、再度エンリッチポリシーを実行します。これにより、更新されたソースインデックスから新しいエンリッチインデックスが作成されます。以前のエンリッチインデックスは、遅延メンテナンスジョブによって削除されます。デフォルトでは、これは15分ごとに行われます。
必要に応じて、再インデックスまたは更新を使用して、すでにインジェストされたドキュメントをインジェストパイプラインを使用して処理できます。
エンリッチポリシーの更新
作成後、エンリッチポリシーを更新または変更することはできません。代わりに、次のことができます:
- 1. 新しいエンリッチポリシーを作成し、実行します。
- 2. 使用中のエンリッチプロセッサやES|QLクエリ内の以前のエンリッチポリシーを新しいエンリッチポリシーに置き換えます。
- 3. エンリッチポリシーを削除するAPIまたはKibanaのインデックス管理を使用して、以前のエンリッチポリシーを削除します。
エンリッチコンポーネント
エンリッチコーディネーターは、各インジェストノードでドキュメントをエンリッチするために必要な検索を管理および実行するコンポーネントです。すべてのパイプライン内のすべてのエンリッチプロセッサからの検索をバルクマルチ検索に統合します。
エンリッチポリシーエグゼキュータは、すべてのエンリッチポリシーの実行を管理するコンポーネントです。エンリッチポリシーが実行されると、このコンポーネントは新しいエンリッチインデックスを作成し、以前のエンリッチインデックスを削除します。エンリッチポリシーの実行は、選出されたマスターノードから管理されます。これらのポリシーの実行は、別のノードで行われます。
ノード設定
エンリッチコーディネーターは、次のノード設定をサポートしています:
- `````enrich.cache_size
- ドキュメントをエンリッチするためにキャッシュする最大検索数。デフォルトは
1000
です。クラスター内のすべてのエンリッチプロセッサに対して単一のキャッシュがあります。この設定は、そのキャッシュのサイズを決定します。 enrich.coordinator_proxy.max_concurrent_requests
- ドキュメントをエンリッチする際に実行する最大同時マルチ検索リクエスト数。デフォルトは
8
です。 enrich.coordinator_proxy.max_lookups_per_request
- ドキュメントをエンリッチする際にマルチ検索リクエストに含める最大検索数。デフォルトは
128
です。
エンリッチポリシーエグゼキュータは、次のノード設定をサポートしています:
enrich.fetch_size
- エンリッチインデックスにソースインデックスを再インデックス化する際の最大バッチサイズ。デフォルトは
10000
です。 enrich.max_force_merge_attempts
- エンリッチインデックスで許可される最大強制マージ試行回数。デフォルトは
3
です。 enrich.cleanup_period
- Elasticsearchが未使用のエンリッチインデックスを削除できるかどうかを確認する頻度。デフォルトは
15m
です。 enrich.max_concurrent_policy_executions
- 同時に実行するエンリッチポリシーの最大数。デフォルトは
50
です。