データストリーミング : 導入

ストリーム処理またはイベントストリーミングとも呼ばれるデータストリーミングは、生成されるデータの継続的なフローで、これによりリアルタイムの処理と分析が可能となり、分析情報を即時に得られるようになります。あらゆる業界がリアルタイムデータに依存するようになった今日、Apache Kafka や Confluent などのストリーミングシステムは、マルチプレイヤーゲーム、リアルタイムの不正検出、ソーシャルメディアフィードから株式取引プラットフォームや GPS 追跡まで、多彩な分野で活用されています。

データストリーミングの仕組み、一般的なユースケースと事例、データインフラストラクチャ間で任意のソースからストリーミングを開始する方法について説明します。

streaming data - hero icon

Streaming Data Overview

What is Streaming Data?

Also known as event stream processing, streaming data is the continuous flow of data generated by various sources. By using stream processing technology, data streams can be processed, stored, analyzed, and acted upon as it's generated in real-time.

ストリーミングとは?

「ストリーミング」という言葉は、始まりも終わりもない連続的なデータストリームを表すために使われ、ダウンロードをせずに活用または対応できるデータを供給し続けることを意味します。

データストリームは、あらゆる種類のソースから多彩なフォーマットと量で生成されます。アプリケーション、ネットワークデバイス、サーバーのログファイルからウェブサイトのアクティビティ、銀行取引や位置情報に至るまで、すべてを集約し、信頼できる唯一の情報源からリアルタイムの情報や分析をシームレスに収集することができます。

ストリーミングデータの仕組み

ストリーミングデータ リアルタイムデータアーキテクチャ

かつてのレガシーインフラストラクチャは生成するデータが少なかったため、比較的構造化されたもので、データとデータ構造を指定し、統一する方法でシステム全体を構築することができました。ストリーム処理システムの登場により、データの処理方法は現代の要件に合わせて大きく変化しています。

ストリームデータ処理の概要

今日のデータは、IoT センサー、サーバー、セキュリティログ、アプリケーションや社内外のシステムなど、数限りないソースから生成されており、構造やデータの完全性の規制、生成されるデータの量や速度の制御はほぼ不可能な状態です。

従来のソリューションはデータへの対応前に取り込み、処理して構造化するよう設計されていますが、ストリーミングデータアーキテクチャでは、Data in Motion(躍動するデータ)を取り込み、永続的に保管し、充実化して分析することが可能です。

そのため、データストリームを取り扱うアプリケーションには、常に「ストレージ」と「処理」という2つの機能が必要となります。ストレージには、大量のデータストリームをr連続で一貫性をもって記録できることが求められ、処理には、ストレージと通信し、データを消費・分析し、データ上で計算を実行できる能力が必要となります。

また、レガシーデータベースやシステムとの併用に際しては、新たな課題や検討すべき事項が出てきます。現在では、企業によるストリーミングデータアプリケーションを構築を支援するプラットフォームやツールが多数提供されています。

事例

ストリーミングデータの活用事例としては、リアルタイムの株式取引、分単位での小売在庫管理、ソーシャルメディアのフィード、マルチプレイヤーゲームでのやり取り、ライドシェアアプリなど、ありとあらゆる業界のユースケースがあります。

例えば、利用者が Lyft に電話すると、リアルタイムのデータストリームが一体となってシームレスなユーザー体験を生み出します。こうしたデータを通じ、アプリはリアルタイムの位置情報追跡、交通統計、価格設定、リアルタイムの交通データを組み合わせ、利用者と最適な運転手のマッチング、価格計算、リアルタイムと過去のデータに基づく目的地への所要時間の推定を同時に行います。

こうした例からも分かるように、ストリーミングデータは、あらゆるデータドリブン型の組織の最初のステップとなり、ビッグデータの取り込み、統合やリアルタイム分析を促進します。

バッチ処理とリアルタイムストリームの比較

バッチ形式のデータ処理ではデータを一括ダウンロードした上で処理、保存と分析を行う必要がありますが、ストリーミングデータは連続的に流入するため、データが生成された瞬間にリアルタイムで同時に処理することが可能です。

今日のデータは、終わりのないイベントのストリームとして届くのが普通で、あらゆる量やフォーマットで、クラウド、オンプレミス、ハイブリッドクラウドなど多彩な場所から提供されます。

旧来のデータ処理方法では経時的に収集されたトランザクションのグループとしてしかデータを処理できないため、今日の複雑な要件にはそぐわず、ほとんどのユースケースで時代遅れとなっています。現代の企業は、データが陳腐化する前にミリ秒単位のデータに基づいて行動を取る必要があります。こうした継続的なデータが、ビジネスの進め方を変革する無数の利点をもたらします。

Streaming Benefits & Use Cases

ストリーミングデータのメリット

データの収集は氷山の一角に過ぎません。企業にはバッチ形式でのデータの処理を待つだけの余裕はなく、不正行為の検知や株式市場プラットフォーム、ライドシェアアプリや E コマースサイトなど、あらゆる局面でリアルタイムのイベントストリームが活用されています。

ストリーミングデータと組み合わせることで、アプリケーションにデータの統合に加え、イベントを発生次第リアルタイムで処理、フィルタリング、分析、対応できる能力が生まれ、リアルタイムでの不正検知、Netflix でのおすすめ、購入のたびに更新される複数のデバイスでのシームレスなショッピング体験など、新たなユースケースの可能性が広がります。

つまり、大量のリアルタイムデータを取り扱う業界であれば、継続的なリアルタイムイベントストリーム処理プラットフォームの恩恵を大いに受けられるのです。

ユースケース

Apache Kafka や Confluent などのストリーム処理システムは、リアルタイムデータと分析を実現します。イベントストリーミングはあらゆる業界で利用されていますが、データをリアルタイムで大規模に統合、分析、トラブルシューティングや予測できるこうしたシステムの能力で、新たなユースケースが生まれます。組織の過去のデータやストレージ内のバッチデータの利用に加え、躍動するデータからも貴重なインサイトが得られるようになります。

一般的なユースケースの例 :

  • 位置情報データ
  • 不正の検出
  • リアルタイムの株式取引
  • マーケティング、営業、ビジネス分析
  • 顧客/ユーザーのアクティビティ
  • 社内 IT システムの監視とレポーティング
  • ログの監視 : システム、サーバー、デバイスなどのトラブルシューティング
  • SIEM (セキュリティ情報イベント管理): 監視、測定、脅威検知のためのログとリアルタイムイベントデータの分析
  • 小売/倉庫の在庫管理 : すべてのチャネルと場所を対象とした在庫管理とあらゆるデバイスでのシームレスな顧客体験の提供
  • ライドシェアのマッチング : 位置情報、ユーザー、価格設定データを組み合わせて予測分析を実現 - 距離、目的地、価格、待ち時間などから利用者とドライバーをマッチング
  • 機械学習と AI : 過去と現在のデータの組み合わせで一つの中枢神経系を構築し、予測分析で新たな可能性を実現

あらゆる種類の処理、保存、分析すべきデータがある限り、Confluent はあらゆるユースケースと規模でのデータ活用に役立ちます。

Challenges Building Data Streaming Applications

リアルタイムアプリケーション構築における主な課題

スケーラビリティ: システム障害が発生すると、各デバイスから流入するログデータが毎秒キロビットから毎秒メガビットへ、さらに集約されて毎秒ギガビットへと増大する可能性があります。アプリケーションの拡張に合わせて容量、リソースやサーバーを追加すると、瞬時に生データの生成量が指数関数的に増加します。ストリーミングデータを取り扱う際には、スケーラビリティを備えたアプリケーション設計が欠かせません。

順序付け: データストリーム内のデータの順序の決定は些細なことではなく、多くのアプリケーションで非常に重要なことです。チャットや会話は順番が揃っていないと意味をなさず、開発者が集約されたログビューを確認して問題をデバッグする際には、各行が順番に並んでいなければなりません。生成時点でのデータパケットの順序と配信先にそうしたパケットが届く順序は異なることが多く、データを生成するデバイスのタイムスタンプやクロックにもずれが生じることがあります。データストリームを解析する際には、アプリケーションが ACID トランザクションを前提としていることを認識しておく必要があります。

一貫性と耐久性 : データストリーム処理において、データの一貫性とデータへのアクセスは常に困難な問題となります。ある時点で読み込まれたデータが、世界の別の場所にある別のデータセンターではすでに修正され、古くなっている可能性もあります。また、クラウド上のデータストリームを取り扱う際にはデータの耐久性も課題となります。

フォールトトレランスとデータの保証 : データ、ストリーム処理やその他の分散システムを扱う際に考慮すべき重要な点です。データが無数のソースやロケーションからさまざまなフォーマットや量で流入する中、システムが単一障害点による混乱を防げるか、ストリームデータを高い可用性と耐久性で保管できるかなどが焦点となります。

Confluent を選ぶ理由

今日のデジタルファーストの世界を勝ち抜くためには、企業は卓越した顧客体験とデータに基づくバックエンドオペレーションを提供しなければなりません。Confluent は、過去のデータとリアルタイムデータを信頼できる唯一の情報源に一元化することで、リアルタイムで継続的に流入し、変化を続けるデータへのスムーズな対応、応答と適応を可能にします。Apache Kafka を生んだ開発者チームの構築した Confluent は、まったく新たなカテゴリーの最新イベントドリブン型アプリケーションの構築、ユニバーサルなデータパイプラインの獲得、強力なデータドリブンのユースケースの実現をエンタープライズ級のスケーラビリティ、セキュリティとパフォーマンスで実現します。

Confluent は、あらゆるクラウドからのデータを規模の大小にかかわらずストリームするために設計された唯一のデータストリーミングプラットフォームで、Walmart、Expedia、Bank of America などの有名企業でも活用されています。無料トライアルでわずか数分で利用を開始できます。

Apache Kafka や Confluent などのテクノロジーの登場で、リアルタイムのストリーミングと分析が現実的なものになりました。

Confluent は、過去のデータとリアルタイムのデータを信頼できる唯一の情報源へと一元化することで、まったく新たなカテゴリーの最新イベントドリブン型アプリケーションの構築、ユニバーサルなデータパイプラインの獲得、強力なデータドリブンのユースケースの実現を完全なスケーラビリティ、パフォーマンスと信頼性で可能にします。

Confluent を選ぶ理由

小売、物流、製造、金融サービスからオンラインソーシャルネットワーキングなど、業界にかかわらず、Confluent を活用することで、多様なシステム間でのデータの送受信、切り替えやソートなどの基本的な仕組みを気にすることなく、データから事業上の価値を引き出すことに集中できるようになります。

Confluent は、あらゆるソースからのデータを規模の大小にかかわらずストリームするために設計された唯一のストリーミングデータプラットフォームで、Walmart、Expedia、Bank of America などの有名企業でも活用されています。Apache Kafka を生んだ開発者チームが構築した今日最も強力なストリーミングデータプラットフォームで、ビッグデータの取り込みに加え、リアルタイムでの処理、グローバルなデータ統合、ストリーム内分析も可能です。

無料トライアルでわずか数分で活用を開始する方法やConfluent がリアルタイムデータで企業を支援する方法 をぜひご確認ください。