メインコンテンツへスキップ
メインコンテンツへスキップ

リアルタイム分析

リアルタイム分析とは?

リアルタイム分析とは、データが生成されると同時にエンドユーザーや 顧客にインサイトを提供するデータ処理を指します。これは、データをバッチとして収集し、 生成から長い時間が経ってから処理する従来型の分析、いわゆるバッチ分析とは異なります。

リアルタイム分析システムはイベントストリームの上に構築されており、 イベントストリームは時間順に並んだ一連のイベントで構成されます。イベントとは、すでに発生した何らかの事象です。 それは、EC サイトでショッピングカートに商品が追加されたことかもしれませんし、 IoT(Internet of Things)センサーから計測値が出力されたこと、あるいは サッカーの試合でゴールへシュートが放たれたことかもしれません。

以下は、(架空の IoT センサーからの)イベントの一例です。

{
  "deviceId": "sensor-001",
  "timestamp": "2023-10-05T14:30:00Z",
  "eventType": "temperatureAlert",
  "data": {
    "temperature": 28.5,
    "unit": "Celsius",
    "thresholdExceeded": true
  }
}

組織は、このようなイベントを集約・分析することで、顧客に関する洞察を得ることができます。これは従来、バッチ分析によって行われてきました。次のセクションでは、バッチ分析とリアルタイム分析を比較します。

リアルタイム分析 vs バッチ分析

以下の図は、個々のイベントの観点から見た、典型的なバッチ分析システムの全体像を示しています。

バッチ分析の図

イベントが発生してから、それを処理してインサイトを得るまでに、かなり大きなギャップがあることがわかります。従来は、これがデータ分析の唯一の手段であり、データをバッチで処理するために任意の時間的な区切りを設ける必要がありました。たとえば、1日の終わりに収集されたすべてのデータを処理する、といった形です。これは多くのユースケースでは有効でしたが、一部のユースケースでは最適とは言えません。なぜなら、鮮度の低いデータを扱うことになり、データにすばやく反応することができないからです。

対照的に、リアルタイム分析システムでは、次の図に示すように、イベントが発生するとすぐにそれに反応します。

リアルタイム分析の図

これにより、イベントが生成されてからほとんど遅延なくインサイトを得ることができます。では、これはなぜ有用なのでしょうか?

リアルタイム分析の利点

変化の激しい現代において、組織は常に変化する状況に俊敏かつ柔軟に対応するため、リアルタイム分析に依存しています。リアルタイム分析システムは、さまざまな形でビジネスに利点をもたらします。

より優れた意思決定

リアルタイム分析を通じてアクションにつなげられるインサイトにアクセスできれば、意思決定を改善できます。ビジネスの運営担当者がイベントを発生と同時に把握できれば、タイムリーな介入を行うことがはるかに容易になります。

たとえば、アプリケーションに変更を加え、その変更がユーザー体験に悪影響を及ぼしていないかを知りたい場合、必要であればすぐに変更を戻せるよう、できるだけ早くその影響を把握したいと考えます。リアルタイム性の低いアプローチでは、この分析を行うために翌日まで待たなければならないかもしれず、その時点では多くのユーザーが不満を抱えていることになります。

新しいプロダクトと収益源

リアルタイム分析は、ビジネスが新たな収益源を生み出すのに役立ちます。組織は、ユーザーに分析クエリ機能へのアクセスを提供する、新しいデータ中心のプロダクトやサービスを開発できます。これらのプロダクトは魅力的であることが多く、ユーザーはアクセスのために料金を支払うこともあります。

さらに、既存のアプリケーションをより「離れがたい」ものにすることで、ユーザーのエンゲージメントとリテンションを高められます。これによりアプリケーションの利用が増え、組織の収益拡大につながります。

顧客体験の向上

リアルタイム分析を利用すると、ビジネスは顧客の行動、好み、ニーズについて即時のインサイトを得ることができます。これにより、タイムリーな支援を提供し、やり取りをパーソナライズし、顧客を惹きつけ続ける、より魅力的な体験を創出できます。

リアルタイム分析のユースケース

リアルタイム分析の真の価値は、その実践的な活用例を考えると明らかになります。ここでは、そのいくつかを見ていきます。

不正検知

不正検知とは、偽アカウントから支払い不正まで、さまざまな不正パターンを検出することです。不審な行為にフラグ付けを行い、取引をブロックし、必要に応じてアカウントを無効化するなど、不正をできるだけ早く検出することが求められます。

このユースケースは、ヘルスケア、デジタルバンキング、金融サービス、小売など、業界を問わず広く見られます。

Instacart は北米を代表するオンライン食料品企業で、何百万人ものアクティブな顧客と買い物代行者を抱えています。同社は Yoda という不正検知プラットフォームの一部として ClickHouse を利用しています。上記の一般的な不正タイプに加えて、顧客と買い物代行者の共謀も検知しようとしています。

不正検知のためのリアルタイム分析

彼らは、リアルタイムな不正検知を可能にする ClickHouse の特性として、次の点を挙げています。

ClickHouse は LSM-tree ベースの MergeTree ファミリーエンジンをサポートしています。
これらは書き込みに最適化されており、大量のデータをリアルタイムに取り込む用途に適しています。

ClickHouse は分析クエリ向けに明示的に設計・最適化されています。
継続的にデータを分析し、不正の兆候となり得るパターンを検出するようなアプリケーションのニーズに、まさに適合します。

時間制約下の意思決定

時間制約下の意思決定とは、利用可能な最新情報に基づいて、ユーザーや組織が迅速かつ十分な情報に基づいた選択を行う必要がある状況を指します。リアルタイム分析により、トレーダーが市場の変動に反応したり、消費者が購買判断を行ったり、プロフェッショナルがリアルタイムの運用変化に適応したりといった、動的な環境での意思決定が可能になります。

Coinhall は、ローソク足チャートを通じて、時間経過に伴う価格変動に関するリアルタイムなインサイトをユーザーに提供しています。このチャートは、各取引期間の始値・高値・安値・終値を表示します。彼らは、この種のクエリを高速に実行し、かつ多数の同時ユーザーに対応できる必要がありました。

時間制約下の意思決定のためのリアルタイム分析

パフォーマンスという観点では、ClickHouse が明らかな勝者でした。ローソク足クエリを 20 ミリ秒で実行し、
他のデータベースでは 400 ミリ秒以上かかっていました。最新価格クエリは 8 ミリ秒で実行され、
次点の SingleStore でも 45 ミリ秒でした。最後に、ASOF JOIN クエリは 50 ミリ秒で処理できたのに対し、
Snowflake は 20 分かかり、Rockset はタイムアウトしました。