Build Predictive Machine Learning with Flink | Workshop on Dec 18 | Register Now

ストリームデータ処理

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

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

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

streaming data - hero icon

ストリーミングデータの概要

ストリーミングデータとは?

イベントストリーム処理とも呼ばれるストリーミングデータは、さまざまなソースによって生成されるデータの連続的なフローを指します。ストリーム処理テクノロジーを使用すると、データストリームがリアルタイムで生成される際に処理、保存、分析を行い、それに基づいて対応ができます。

ストリーミングとは?

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

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

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

 SEO 用語集ページ - データストリーミンググラフィック

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

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

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

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

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

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

事例

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

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

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

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

バッチ処理では、データを実行可能にする前にまずそのデータを一括ダウンロードする必要がありますが、ストリーミングデータは、リアルタイムの同時処理、保存、分析が可能になります。

旧来のバッチデータ処理では長期にわたって収集されたトランザクションのグループとしてしかデータを処理できないため、今日の複雑な要件にはそぐわず、ほとんどのユースケースで不十分となっています。現代の企業は、データが陳腐化する前にミリ秒単位のデータに基づいて行動を取る必要があります。リアルタイムでのデータへのアクセスが可能となることで、数多くの利点とユースケースを享受できるようになります。

ストリーミングのユースケース

イベントストリーミングには多くのユースケースがあります。イベントストリーミングは現実世界の仕組みによく似ているため、ほとんどすべてのビジネスプロセスをバッチ処理よりも適切に表現できます。これには、予測分析、機械学習、生成 AI、不正行為検出などが含まれます。

イベントストリーミングは、メディアストリーミング、オムニチャネル小売体験、ライドシェアリングなど、幅広いビジネスで活用されています。

例えば、顧客が Lyft に電話をかけると、アプリケーションはマッチングするドライバーを認識し、さらにリアルタイムの位置情報と過去の交通データに基づいて所要時間も把握します。また、リアルタイムデータと過去のデータの両方に基づいて料金を判定することもできます。

一般的なユースケース :

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

データストリーミングアプリケーション構築における課題

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

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

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

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

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

Confluent を選ぶ理由

今日のデジタルファーストの世界を勝ち抜くためには、企業は卓越した顧客体験とデータに基づくバックエンドオペレーションを提供しなければなりません。

Confluent は、過去のデータとリアルタイムデータを信頼できる唯一の情報源に一元化することで、リアルタイムで継続的に流入し、変化を続けるデータへのスムーズな対応、応答と適応を可能にします。Apache Kafka を生んだ開発者チームの構築した Confluent は、まったく新たなカテゴリーの最新イベントドリブン型アプリケーションの構築、ユニバーサルなデータパイプラインの獲得、強力なデータドリブンのユースケースの実現をエンタープライズ級のスケーラビリティ、セキュリティとパフォーマンスで実現します。

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

わずか数分で無料で利用を開始できます。

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

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

Confluent を選ぶ理由

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

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

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