膨大なデータから必要な情報を高速で検索する
Elasticsearchは2012年に設立した「検索の会社」だ。データベース検索エンジン「Elastic」は40カ国以上で展開し、3億5,000万以上もダウンロードされ、12,900以上の企業で採用されている。
空久保氏は「Elasticsearchでは、膨大なデータから関連性の高い結果を素早く取り出してユーザーに提供することをDNAとして取り組んできた。Elasticは『検索は体験』と考え、それが独自性を生む基盤となっている」と紹介し、「スピード・スケール・関連性がElasticsearchのコアコンピタンス」と語った。
この価値を体現しているのが、Uberの配車マッチングサービスだ。Uberでは、膨大なデータ処理とリアルタイム性が要求されるこのシステムにElasticを採用しており、「1秒あたり最大130万件のイベント投入処理」や、「総データサイズ1ペタバイトのクラスターで1秒あたり最大40億ドキュメントのスキャン」などを実現し、1秒未満での応答スピードを可能にしている。そうした検索力は、Search Engine系ツールとして、2位にダブルスコア近くの差をつけての世界1位と圧倒的な評価を誇る。
Elasticsearchは、JSON形式の分散ドキュメントストア形式となっている。つまり、保存されるデータの最小単位がドキュメントであり、ドキュメントにはフィールドと呼ばれる複数の属性を持つ領域がある。そして、インデックスはドキュメントの集合になっており、それが複数あるという形だ。そして、複数のノードに分割して格納することによって自動分散配置が可能になっている。
そして、さらに空久保氏はElasticsearchの特徴として、次の4項目を挙げた。
まず1つ目が、「非常に高速な全文検索エンジン」だ。テキストデータを転置インデックスとして保存することで、非常に高速な全文検索を提供できる。転置インデックスとは、入力されたデータ(文章)を単語に分割し、その単語をキーに入力されたドキュメントのIDをバリューとして保存する形式のことで、これによって飛躍的な検索速度を実現している。
そして2つ目が、「データ量が増大しても検索スピードが落ちない」こと。インデックスを複数のノードに分割して管理可能な分散アーキテクチャのため、スケールアウトによる拡張が容易で、かつデータ量が増えても検索性能が落ちないという特長がある。
そして3つ目が、「様々な種類のデータを取り込み、リアルタイムに検索・分析ができる」ことだ。JSON形式のドキュメントストアであり、構造化データ、非構造化データを問わず様々な形式のデータを柔軟に取り込める。このデータ投入時に共通スキーマであるECS(Elastic Common Schema)を付与することで、高速かつ関連性の高い検索が可能となっている。これは「スキーマオンライト」というアーキテクチャで、高速検索の重要なポイントだ。フィルタリング、スコアリング、集計、分析など高度なクエリ言語を提供しており、高度な使い方もできる。
さらに4つ目として分散アーキテクチャによる高い耐障害性、高可用性を維持していることを挙げた。
そんなElasticsearchに加え、可視化に「Kibana」、データ投入に「Beats」「Logstash」を組み合わせ、「Elastic Stack」として提供している。この組み合わせによって、大量データをリアルタイムに検索でき、自動拡張によって大規模システムでもオンプレ、クラウドを問わずデプロイできる。また大量データから関連性の高い情報を検索し、重要なインサイトを得ることもできる。
そして、この「Elastic Stack」によって、検索をベースにした、システム稼働状況やセキュリティリスクをリアルタイムで検知する“3つのソリューション”が提供されている。まず、「Elasticエンタープライズサーチ」では企業内データを全文にて横断検索しており、その応用として、システムのログによって稼働状況を検知するという可観測性による「Elasticオブザーバビリティ」、セキュリティリスクを検知する「Elasticセキュリティ」がある。