このプロジェクトについて
このリポジトリは、Google Cloud Platform上での低レイテンシ分析ソリューションの構築方法を示しています。アーキテクチャは以下の4つの主要部分で構成されます。
1. **イベント取り込み** – Pub/Subトピックは、シンプルなPythonイベントジェネレータによって生成されたクリックストリームメッセージを受信します。Pub/Subは生産者と消費者を分離する、耐久性がありグローバルに利用可能なメッセージバスを提供します。
2. **ストリーミング処理** – Apache BeamパイプラインがDataflow(runner=DataflowRunner)上でストリーミングモードで実行されます。パイプラインはPub/Subイベントを読み取り、関連フィールドを抽出してCloud Memorystore(Redis)内のメトリクスカウンターを更新します。RedisはネイティブのsetおよびHyperLogLogコマンド(SCARD、SINTERSTORE、PFADD、PFCOUNT)を利用して、ユニークビジターのカウントやセットベースの分析を非常に効率的に行えるため、インメモリストアとして使用されています。
3. **メトリクスストア** – Cloud Memorystore(Redis)はリアルタイムメトリクスを保持します。Redisの内蔵データ構造を活用することで、カスタム集計コードなしでサブ秒単位のクエリレイテンシーを実現しています。
4. **可視化** – `dashboard/`フォルダにあるSpring BootアプリケーションはJedisクライアント経由でRedisに接続し、集計値を読み取ってGoogle Chartsで描画します。UIは自動更新を提供し、マーケターや運用担当者がアクティブユーザー数、実験参加状況、コンバージョン率、ユーザー重複などのKPIを監視できます。
リポジトリには以下の作業を行うためのスクリプトと手順が含まれています:
- 必要なGCPサービス(Pub/Sub、Dataflow、Memorystore、Cloud Storage、VPCネットワーク)の設定
- Mavenを使用したDataflowパイプラインのデプロイ
- Python仮想環境でのダミーイベントジェネレータの実行
- VPC制限付きRedisアクセス用のプロキシVMの背後でのSpring Bootダッシュボード起動
- Cloud Shell Webプレビューを通じたライブダッシュボードの表示
すべてのコンポーネントはフルマネージドサービスであるため、ソリューションは自動的にスケーリングし、運用オーバーヘッドは最小限です。これは、GCP上でのリアルタイムWeb分析、A/Bテストモニタリング、またはクリックストリームベースのKPIレポートが必要な方のスターターキットとして役立ちます。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.