Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

Elastic Stack Advent Calendar 2022(2022年のElastic Search Platformを振り返る)

こんにちは、アクロクエストテクノロジー株式会社でElastic Stackのコンサルティング業務を担当している吉岡です。
本記事は、Elastic Stack (Elasticsearch) Advent Calendar 2022 の5日目の内容になります。

■Elastic Stackリリース概要

  • Elastic Stack Version 7.17.0リリース(2022年2月)
  • Elastic Stack Version 8.0.0リリース(2022年2月)
  • Elastic Stack Version 8.1.0リリース(2022年3月)
  • Elastic Stack Version 8.2.0リリース(2022年5月)
  • Elastic Stack Version 8.3.0リリース(2022年6月)
  • Elastic Stack Version 8.4.0リリース(2022年8月)
  • Elastic Stack Version 8.5.0リリース(2022年11月)


2022年1月時点での最新バージョンはVer.7.16.2、2022年12月5日時点での最新版はVer.8.5.2です。
待ちに待ったVer.8のリリースです。Ver.7.0.0がリリースされたのが2019年4月ですので、約3年振りのメジャーバージョンアップ!Ver.8.0.0リリース後、マイナーバージョンが5回上がっていますが、マイナーチェンジとは思えない多くの機能が盛り込まれています。

本ブログでは、Enterprise Search、Observablility、Elastic Security、3つのソリューションのコアとなる「Elastic Search Platform」の進化について紹介していきます。

■Elastic Search Platformとは

Elasticsearch、Kibana、Logstash、Beatsとう主要プロダクト群を以前はElastic Stackと呼んでいましたが、Ver.8.0あたりからElasticsearch、Kibana、Integrations(Logstash/Beats/Elastic Agent)という分け方になり、総称が「Elastic Search Platform」となりました。Elastic Stackと同様の意味に捉えてもらえればと思います。

Elastic Search Platformをまとめるとこのような感じです。

Elastic Search Platform

■Ver.7.17.0における進化ポイント

パフォーマンスの向上

  • インデックス設定の重複排除
    • Ver.7.16以前では、インデックスのSetting/Mapping情報は各インデックスに紐づいていたため、Setting/Mappingが全く同一だとしても、重複した情報全てをヒープに保持する非効率な仕様でした。特に、日/週/月などの単位でインデックスを集約する時系列データでは、インデックスが増加するほど、Setting/Mapping重複によるヒープ逼迫の影響が大きくなります。
    • Ver.7.17.0では、複数のインデックスに使用される同一のSetting/Mappingが1セットに削減されます。Elastic社の公式発表によると、Auditbeatのインデックスが10,000個あるとき、7.16以前ではヒープを約500MB消費するのに対して、Ver.7.17.0ではヒープ使用量が1MB(約500分の1)になるそうです。ノード間通信の量も削減されるため、クラスタのパフォーマンス向上につながります。

■Ver.8.0.0~Ver.8.5.0における進化ポイント

パフォーマンスの向上

  • インデックスサイズ
    • 圧縮率向上によりインデックスサイズが縮小(8.0.0)
    • 時系列メトリック データに最適な「時系列データ ストリーム (TSDS) 機能」がリリース。インデックスサイズを約30%削減(8.5.0)
  • ストレージサイズ
    • Doc value only field:ストレージサイズを20%以上削減(8.1.0)
  • インデクシング性能
    • ジオポイントのインデクシング性能が10~15%高速化(8.0.0)
    • Doc value only field:インデクシング性能を20%以上向上(8.1.0)
  • 検索性能
  • ヒープ使用量
    • リソース使用量を大幅に削減、データノードが保持可能なインデックス数が増加(8.3.0)

Ver.8.0.0以降、インデックスサイズ/ヒープ/ストレージの効率化に関する機能強化が多く、結果としてVer.7.Xと8.3以降で、10倍以上のシャードを保持できるようになっています。ぜひVer.8.3以降を使いましょう。

可視化/Kibana UI

  • Discover
    • フィールド統計機能が追加(8.0.0)
    • フィールド統計機能ジオデータに対応(8.2.0)
  • Lens
    • Gauge, Waffle, Mosaicが追加(8.1.0)
    • 新しいメトリックが追加(Tech Preview)(8.4.0)
    • 簡単にChoropleth Maps を作成可能に(8.2.0)
    • Annotation機能が追加(8.2.0)
    • クエリベースのAnnotation機能が追加(8.5.0)
  • Maps
    • Shapeファイルのアップロード機能を追加(8.1.0)
    • GeoServer不要でカスタムマップを利用可能に(8.1.0)
  • Dashboard
    • コントロール専用エリアが追加(8.3.0)
    • タイムスライダー機能が追加(8.5.0)
  • その他
    • フリートパッケージマネージャーから機械学習モデルやSecurityパッケージがインストール可能に(8.0.0)

Discoverが機能強化で使いやすくなりました。最初にフィールドの統計分析からデータ傾向を掴み、KQLを使ってドキュメント抽出/調査、その後必要に応じて異常値検知用のアラートを作成。このようなデータの基礎調査作業がDashboardを作ることなく可能です。

Search/ML/NLP

  • Search
    • 近似最近傍(ANN)検索機能(8.0.0)
  • ML管理機能
    • 機械学習モデル管理画面が追加(8.1.0)
    • 機械学習モデルをスペース単位で管理可能に(8.2.0)
    • 機械学習モデルのテスト画面が追加(8.2.0)
  • NLP
    • PyTorchモデルのインポートが可能に(8.0.0)
    • Fill-mask、固有表現抽出、テキスト分類、Embeddingに対応(8.0.0)
    • 質問応答(Question-Answering)に対応(8.3.0)

PyTorchモデルのインポートが可能になったことで、Elasticsearch単体で様々なデータ分析ができるようになりました。今後も様々なNLPタスクがサポートされるはずです。非常に楽しみですね。

ちなみに、現時点でのElasticsearchにおけるNLPの変遷をまとめると以下のようになります。

NLPの変遷

ログ分析/監視

  • Kibana Alert
    • スヌーズ機能が追加(8.2.0)
    • Discoverからアラートルールを作成可能に(8.3.0)
  • データのエンリッチ
    • Lookup Runtime Fieldのサポート(8.2.0)
    • クエリのタイミングでデータ結合が可能(リアルタイムエンリッチ)
    • Enrich Processorとルックアップデータ更新に対する追従が容易
  • AIOps
    • ログパターン解析機能が追加(8.5.0)
    • Log Rate Spike原因調査機能が追加(8.5.0)

これまで、Elasticsearch上でデータのエンリッチを行うにはEnrich Processorの一択でした。Enrich Processorはルックアップ先が固定の場合は向いていますが、頻繁にルックアップデータが更新されるようなユースケースでは、再ルックアップ(Update by Query + Pipeline指定)が必要で使い勝手が良くありません。その課題を解決するのが、Ver.8.2.0でリリースされたLookup Runtime Fieldです。Lookup Runtime Fieldはクエリタイムジョインなので、常に最新のルックアップデータをエンリッチ可能です。柔軟な可視化を行うのに非常に便利です。

まとめ

2022年のElastic Search Platformを振り返って、特徴的な機能強化/新機能をピックアップしてみましたが、その中でも、NLP関連の進化が個人的に興味深いですね。Ver.8.0以降、BERTなどのPyTorch機械学習モデルをElasticsearchでダイレクトに使用したり、モデルを使った推論をElasticsearch内でネイティブに実行することができるようになり、データのエンリッチや検索の幅が大きく広がっています。来年も目が離せませんね。

Elastic Stack

Acroquest Technologyでは、キャリア採用を行っています。

  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

【データ分析】
Kaggle Grandmasterと一緒に働きたエンジニアWanted! - Acroquest Technology株式会社のデータサイエンティストの採用 - Wantedlywww.wantedly.com