アーキテクチャ: 複合イベント処理

このページでは、Google Cloud Platform での複合イベント処理向けのアーキテクチャについて説明します。

Google Cloud Platform を使用すると、膨大なデータのインポート、イベントの処理、ビジネスルールの実行に必要な弾力性と拡張性を備えたインフラストラクチャを構築できます。複合イベント処理(CEP)向けのアーキテクチャには必ず、複数の異種ソースからのデータのインポート、複合ビジネスルールの適用、アウトバウンド アクションの駆動といった機能が必要です。

次のアーキテクチャ図に、このようなシステムと関係するコンポーネントを示します。

複合イベント処理システム向けアーキテクチャ

アーキテクチャの概要

このセクションでは、図に示したアーキテクチャの詳細について説明します。このアーキテクチャは、連続データフローを処理できるストリーミング入力と、データを多数のチャンクとして処理するバッチ入力をサポートします。

ストリーミング入力

リアルタイム、ユーザー、自動生成されるイベントに基づいた即時アクションを必要とするシナリオでは、ストリーミング アーキテクチャを使用して複合イベントを処理できます。

アプリケーション

ユーザーが生成したイベントは、通常、オンプレミスまたはクラウドでホスティングされるアプリケーション内の操作から発生し、クリックストリームや、ショッピング カート、ウィッシュ リスト、金融取引へのアイテムの追加といったユーザー アクションの形式で指定できます。自動生成されたイベントは、プレゼンス、診断、類似したデータのタイプをレポートするモバイル端末または他の端末の形式で指定できます。Cloud Platform 上でアプリケーションをホストするプラットフォームには以下があります。

  • Google App Engine は PaaS(Platform as a Service)であり、管理された自動スケーリング環境にアプリケーションを直接デプロイできます。
  • Google Kubernetes Engine はコンテナベースのアプリケーションをきめ細かく制御する機能を提供します。コンテナのオーケストレーションやデプロイをクラスタ全体で簡単に行えます。
  • Google Compute Engine は、最大限の柔軟性を実現する高パフォーマンスの仮想マシンを提供します。

転送

アプリケーションがオンプレミスでホスティングされていても、Cloud Platform でホスティングされていても、アプリケーションが生成するイベントは、緩く結合し、優れた可用性を備えたメッセージング レイヤに転送される必要があります。Google Cloud Pub/Sub はグローバルな耐久性を持つメッセージ転送サービスで、他の Cloud Platform サービスへのネイティブな接続をサポートし、アプリケーションと下流の処理を連携させます。

バッチ入力

オンプレミス データベースまたはクラウド データベースに格納されている履歴データが膨大になっているシナリオでは、バッチ指向処理手法を使用して複合イベントをインポートし、処理することができます。

データソース

処理対象のイベントが含まれるデータソースは、オンプレミスにも Cloud Platform にも配置できます。オンプレミス データソースの場合、下流の処理用にデータをエクスポートしてから、それを Cloud Storage にコピーすることができます。下流の処理ツールを使用すると、クラウドでホストされたデータベースに格納されているデータに直接アクセスできます。また、Cloud Platform に未処理のイベントデータを格納するために、複数の異なるプラットフォームを使用できます。

  • Google Cloud Storage は、フラット ファイルまたは非構造化データ向けのオブジェクト ストレージを提供します。
  • Google Cloud SQL はリレーショナル データを格納します。
  • Google Cloud Datastore は、動的スキーマと完全なデータ インデックス登録をサポートする NoSQL データベースです。

処理とストレージ

データ処理

イベントデータが Cloud Pub/Sub を経由してアプリケーションからストリーミングされるか、Cloud Storage、Cloud SQL、Cloud Datastore などの他のクラウド データソースに読み込まれると、データ間の汎用計算の変換、拡張、集計、または適用が必要になることがあります。Google Cloud Dataflow は、シンプルなパイプラインベースのプログラミング モデルを使用して、ストリーミング データまたはバッチデータでこれらのタスクを実行するために構築されています。Cloud Dataflow は、必要に応じて柔軟に拡張する統制されたサービスで、これらのパイプラインを実行します。CEP ワークロードで Cloud Dataflow を使用すると、複数の異種ソースからデータを正規化し、このデータを単一で一貫性のある表記にフォーマットすることができます。

イベント ストレージ

このアーキテクチャでは、Cloud Dataflow はイベントデータを処理して、単一で一貫性のある時系列表記に正規化し、フルマネージドの NoSQL データベース サービスである Google Cloud Bigtable に格納します。Cloud Bigtable は、一貫性があり、低レイテンシで高スループットのデータアクセスを提供します。これは下流の処理と分析ワークロードに有効です。Cloud Bigtable で時系列データを格納する方法の詳細については、時系列用の Bigtable スキーマ設計時系列の読み込み、保存、アーカイブをご覧ください。

ルールの実行

CEP システムの中核には受信イベント間で実行する必要のあるルールが用意されています。ルールエンジンは、単純なカスタムのドメイン固有言語から複雑なビジネスルール管理システムまで、多岐にわたります。ルールエンジンは、複雑であっても、Cloud Dataflow あるいは Google Cloud Dataproc(Hadoop クラスタまたは Spark クラスタを実行するための統制されたサービス)を使用して、分散形式でデプロイできます。どちらのシステムを使用しても、大量の時系列イベントにまたがって複合ルールを実行することができます。次に、これらのルール評価の結果を使用して、アウトバウンド アクションを促進します。

アウトバウンド アクション

インバウンド イベントがルール実行メカニズムによって処理されると、処理結果は一連のアウトバウンド アクションに変換できます。こうしたアクションには、モバイル端末用のプッシュ通知、他のアプリケーション用の通知、ユーザーへのメール送信などがあります。こうしたアクションを配信するには、App Engine、Kubernetes Engine、Compute Engine のいずれで実行される場合も、Google Cloud Platform またはオンプレミスでホスティングされるアプリケーションに Cloud Pub/Sub 経由でメッセージを送信できます。

分析

インバウンド イベントにまたがるルール実行の結果を Google BigQuery に格納し、ビジネス インテリジェンスまたは報告の目的で、探索と分析を実施します。BigQuery は統制されたペタバイトスケールのデータ ウェアハウスで、SQL に類似したクエリをサポートし、追加の下流分析ツールに接続します。データ サイエンス指向分析の場合、Google Cloud Datalab は、Jupyter ノートブックに基づいた、強力なデータ探索機能を提供します。Google Data Studio 360 は、レポーティングやダッシュボードに使用するために、BigQuery のクエリとストレージ機能が支援する、カスタマイズ可能で共有可能なレポートの作成をサポートします。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...