このプロジェクトについて
Spectrumは、AmplitudeやMixpanelのような商用プラットフォームのオープンソース代替として設計されたセルフホスト型製品分析ウェアハウスである。このプロジェクトは、外部メッセージブローカーやビッグデータフレームワークを必要とせずに、イベント取り込み、セッション化、ファネル分析、コホート維持率、収益帰属、A/BテストをPostgreSQL単体のアーキテクチャで如何に処理できるかを示している。
システムはFastAPIエンドポイントを介して生のクリックストリームイベントを取り込み、`FOR UPDATE SKIP LOCKED`によるバッチクレームを用いた冪等ELTパイプラインで処理し、30分のセッション境界をウィンドウ関数で定義し、アカウントレベルの次元にわたる週次コンバージョンファネルを計算するなど、分析構造を純粋にSQLで処理する。マテリアライズドビューはGrafanaダッシュボード向けの事前集計メトリクスを提供し、行レベルセキュリティでテナントデータを分離する。
主なアーキテクチャパターンには、ステージング、ウェアハウス、アナリティクスレイヤーを分離する3スキーマ設計;パーティションプルーニング対応の月次レンジパーティション化ファクトテーブル;時系列イベントタイムスタンプ用のBRINインデックス;不正ペイロード用のデッドレターキュー;重複処理なしで同時実行ランナーインスタンスtolerateする並行安全パイプライン実行が含まれる。Alembicマイグレーション、Prometheusメトリクス公開、正確なファネルレートと維持率分離を検証する統合テスト、パーティションプルーニングの高速化を実証するベンチマークスクリプトが付属している。
デプロイメントはPodmanコンテナによりPostgreSQL、APIサーバー、Grafanaをオーケストレーションし、単一の`make demo`コマンドで全環境の構築、模擬ユーザーアクティビティの生成、変換パイプラインの実行、可視化レイヤーの起動を行う。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.