はじめに
皆さんは「データを活用しよう」と言われた時、どんなデータをどう活用することをイメージしますか? おそらく、売上やコストなどの販売情報のような数値データなどを集め、集計したり可視化したりすることをイメージする人が多いのではないでしょうか。その場合、実現方法としては業界問わずExcelの人気が高いイメージです。あるいはTableauなどのBIツールを使ったり、Pythonでプログラムを書く人もいるでしょう。何にせよ、仕事でもよく触れる領域なので、皆さんもこの用途は何かしら得意なツールをお持ちかと思います。
しかし、データ活用とは本来そんな狭い領域に閉じた話ではないはずです。活用できるデータも数値データだけでなく、文字データや地理データなど幅広いデータを対象にできればもっと色んな活用方法がイメージできないでしょうか。大量のサービスに散らばったOfficeドキュメントやメールテキストの中から今欲しい情報を的確にかつ高速に検索したり、地理情報を基に数値だけからは見えてこなかった地域別の売り上げ傾向を分析したりするのもまたデータ活用です。
一方で、このようなさまざまなデータ活用を同時に実現しようとして、用途別にツールを併用し始めると、地獄を見ることになります。なぜなら、ツールごとにできることが微妙に異なり、コンテキストスイッチに苦しめられることになるからです。あのツールでは簡単にできることがこのツールでは非常に手間がかかる、というのは地味に大きなストレスです。しかもデータがそれぞれのツールに分散してしまい、データを最新に同期するのに時間と手間がかかったりします。できればデータは一か所に集められていて、そのまま活用できる状態が望ましいはずです。
では、これらの多様なデータを一元的に溜められて活用方法もたくさん用意してあるプラットフォームがあったら便利だと思いませんか? その有力な選択肢1つが今回紹介するElastic Stackです。
Elastic Stackはその柔軟性や使いやすさなどから、当社ではさまざまなプロジェクトで採用が進んでおり、特に新しいサービス開発をするプロジェクトなどでその特性を活かして利用されています。特性は以下の通りです。
共通の特性
-
使い始めが楽
- 基本的に設定ファイルを書き換えたり、画面から操作したりするだけで動作させることが可能であり、プログラミングが不要
- データ活用アプリが豊富に用意されているので、データを集めたらすぐにデータ活用を始められる
開発面
-
開発初期の試行錯誤がしやすい
- スキーマレスにデータを投入できるので、テーブル定義などが不要
運用面
-
将来的に扱うデータ量が増えても性能が落ちない
- REST API経由で高速に大量のデータをCRUDできるデータウェアハウスとして使える
-
クラウドベンダーロックインを回避できる
- IaaSさえあれば利用可能、かつオンプレミスへのデプロイも可能
ビジネス面
-
コストが低い
- まずはBasicライセンスで利用し始めることで、無償で使える
- ライセンス費用が規模・台数によらないためサブスクリプションを購入しても、費用を抑えられる
対象読者
本連載は、Elastic Stackを使ってデータ収集基盤を構築し、さまざまなデータ活用の方法まで紹介していくことで、皆さんがデータを活用する際に参考となる情報を提供します。想定読者は以下の通りです。
- 得意なデータ活用ツールがないデータ活用初学者の人
- もう既に他のデータ活用ツールを使っているが、もう少し広い用途でのデータ活用ができる2つ目以降のツールを探している人
- 既にElastic Stackを使い始めているが、限られた用途でしか使えていなくていまいち使いこなせていない人
- データ活用に興味がある全ての人
NASAやNetflixでも使われているElastic Stackとは
Elastic Stackは任意のデータをリアルタイムで検索、分析、可視化できるプラットフォームです。複数のプロダクトによって構成され、主要プロダクトはそれぞれ以下のような特徴を備えています。
Elasticsearch
- スキーマレスなデータベースを持った高速な全文検索エンジン
- 世界のデータベースランキングであるDB-Engines Rankingで常に10位以内をキープしており、全文検索用途ではデファクトスタンダードになっている
Logstash/Beats
- データのパースや送信を担当するデータシッパー
Kibana
-
ブラウザ(Chrome/Firefox/Safari/Edge)から使えるデータ可視化プラットフォーム
- Elasticsearchに投入されたデータをグラフ化し、ダッシュボードを作成できる
- その他、各種便利機能を使うためのGUIにもなっている
主要な3プロダクトの頭文字を取ってELK Stackと呼ばれることもあります。
Elastic Stackは世界中の企業・機関でさまざまな用途に使われています。例えば宇宙開発で有名なNASAでは、宇宙船から返却された計測データの監視に使っています。また、誰もがお世話になったことがあるであろうWeb百科事典、Wikipediaでは膨大な記事を高速に検索するため、Elasticsearchを使っています。そして、今をときめくサブスクリプションサービスの代表格であるNetflixでも、顧客へのメッセージ送信情報を可視化するのに使っています。その他、どんな用途に使われているか気になる方は公式サイトから導入事例を確認してみてください。
このようにさまざまな用途に使えるのですが、適用先の幅が広すぎて過去の自分も初学者時代はどう使えば良いか迷ってしまうことが多くありました。そこで、今回の連載ではそれぞれのユースケースごとにElastic Stackの使い方をハンズオン的に紹介していくことで、読者の皆さんが迷わずElastic Stackを使えることを目指します。