这个项目能做什么

Spectrum是一个自托管的产品分析数据仓库,旨在作为Amplitude和Mixpanel等商业平台的开源替代方案。该项目展示了仅依靠PostgreSQL架构即可处理事件采集、会话化、漏斗分析、留存计算、收入归因和A/B测试,而无需依赖外部消息代理或大数据框架。 系统通过FastAPI端点接收原始点击流事件,采用幂等ELT流水线(使用`FOR UPDATE SKIP LOCKED`批量锁定)进行处理,并完全用SQL计算分析概念——包括通过窗口函数计算30分钟会话边界,以及跨账户维度生成的每周转化漏斗。物化视图为Grafana仪表盘提供预聚合指标,行级安全机制隔离租户数据。 核心架构模式包括三层Schema设计,将暂存层、仓库层和分析层分离;按月范围分区的明细表,利用分区裁剪提升性能;针对时间戳的BRIN索引;用于异常载荷的死信队列;以及可容忍多个实例并行运行而不会产生重复处理的并发安全流水线执行机制。项目附带Alembic数据库迁移脚本、Prometheus指标暴露、断言精确漏斗率和留存隔离的集成测试,以及展示分区裁剪加速效果的基准测试脚本。 部署依赖于Podman容器编排PostgreSQL、API服务器和Grafana,一条`make demo`命令即可完成整体环境的搭建、模拟用户活动的生成、转换流水线的运行以及可视化层的启动。