🏗️ Silism Commerce 360——人工智能原生数据平台
一个用于电子商务分析的完整的生产型数据和人工智能平台。 本地优先(DuckDB),云就绪(Connection/Snowflake),完全编排,可观察,可通过MCP进行AI查询。
______________________________________________________________________
📋 目录
______________________________________________________________________
🎯 概述
Silism商业360 是一个功能齐全的人工智能原生数据平台,模拟了一家真正的电子商务公司如何获取、转换、观察和分析数据。
它汇集了:
- 现代数据工程: dlt、dbt、气流、DuckDB、Kafka
- AI原生界面: MCP服务器+本地LLM(Ollama)
- 实时分析UI: 流线型仪表板
- 生产级可观测性: 普罗米修斯、格拉法娜、洛基、耶格尔
- 容器化编排: Docker+Docker组合
该项目被设计为 参考架构 对于想要学习或展示的现代数据团队:
- 湖屋设计模式
- 实时+批量流水线
- 端到端可观察性
- 人工智能辅助数据探索
- 生产就绪监控
全部 可在本地运行 零云成本——以及 可部署到Connection/Snowflake 只需进行最小的配置更改。
______________________________________________________________________
🛒 业务用例
该平台模拟了一个真实的电子商务业务,提供数据产品来回答领导团队可能会问的问题:
支持的业务问题示例
- “结账事件对昨天的收入有何影响?”
- “按国家显示每日收入和AOV。”
- “从页面浏览量来看,我们的转化率是多少→ 结账→ 购买?"
- “哪些客户受SEV1事件的影响最大?”
- “营销支出与流量和购买量有何关联?”
- “按类别划分,我们表现最好的产品是什么?”
- “显示随时间变化的客户群体保留率。”
包括样本数据源
- 订单、产品、客户 (PostgreSQL OLTP数据库)
- 网络事件和事件 (Kafka实时流)
- 付款、订单项目 (PostgreSQL事务数据)
- 支持门票和营销支出 (使用dlt模拟外部API)
完整的数据模型通过以下方式处理 dbt青铜→ 银→ Gold 层,实现维度建模最佳实践。
______________________________________________________________________
🏗️ 建筑
遵循现代数据堆栈原则的完整数据和人工智能生态系统:
Data Sources → Ingestion → Lakehouse → Transformations → AI Query → Dashboards → Monitoring建筑层
1.数据摄取层
- dlt管道 用于Postgres表和Kafka主题摄取。
2.仓库/湖畔层
- DuckDB (本地开发和分析)
- PostgreSQL (OLTP和登台)
- Connection/雪花 (可选生产模式)
3.转换层
- dbt核心 用于基于SQL的转换
- 暂存层: 原始摄入数据,变化最小
- 三月层 : 业务就绪的分析模型
- 月度收入分析 - 客户旅程 - 产品性能 - 漏斗分析 - 队列分析
4.编排层
- 阿帕奇气流 用于工作流管理
- 宇宙天文学家 用于dbt集成
- 动态DAG生成 可扩展性
- 任务相关性 以及错误处理
5.人工智能和查询层
- MCP服务器 (模型上下文协议)
- 本地法学硕士 Via Ollama(电话3.2、Mistral等)
- 基于人工智能的SQL生成 从自然语言
- 语义层 用于业务逻辑
- 可用的AI工具:
- run_sql -执行查询 - list_tables -发现架构 - describe_schema -获取表元数据 - explain_model -了解转换 - ask_question -SQL的自然语言
6.可视化层
- 流线型仪表板 交互式分析
- AI 副驾驶 用于会话数据探索
- 实时度量 和关键绩效指标
- 自定义可视化 与Plotly
7.可观察性和基础设施
- 普罗米修斯 -指标收集和存储
- 格拉法纳 -统一的仪表板和警报
- 猎手 -分布式跟踪
- 洛基 -日志聚合和搜索
- AlertManager -警报路由和重复数据删除
- 在线时间监控熊 -服务健康监测
架构图:
┌─────────────────────────────────────────────────────────────────────────────┐
│ DATA SOURCES │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ PostgreSQL │ │ Kafka │ │
│ │ OLTP │ │ Streams │ │
│ └──────┬───────┘ └──────┬───────┘ │
└─────────┼────────────────────┼──────────────────────────────────────────────┘
│ │
▼ ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ INGESTION LAYER │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ dlt Postgres│ │ dlt Kafka │ │ Airflow │ │
│ │ Pipelines │ │ Pipleines │ │ DAGs │ │
│ └──────┬───────┘ └──────┬───────┘ └──────────────┘ │
└─────────┼───────────────────┼───────────────────────────────────────────────┘
│ │
▼ ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ LAKEHOUSE - Staging LAYER │
│ ┌──────────────┐ │
│ │ Raw Tables │ │
│ └──────┬───────┘ │
└─────────────────────────────┼───────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ LAKEHOUSE - Marts LAYER │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Cleaned │ │ Conformed │ │
│ │ Tables │ │ Dimensions │ │
│ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │
│ │ │ │
│ ▼ ▼ │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Revenue │ │ Customer │ │ Product │ │
│ │ Marts │ │ Marts │ │ Marts │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
└─────────┼───────────────────┼───────────────────┼───────────────────────────┘
│ │ │
└───────────────────┼───────────────────┘
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ AI LAYER │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ MCP Server │───▶│ Ollama LLM │ │
│ └──────┬───────┘ └──────────────┘ │
└─────────────────────┼───────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ PRESENTATION LAYER │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Streamlit │ │ Grafana │ │
│ │ Dashboard │ │ Dashboards │ │
│ └──────────────┘ └──────▲───────┘ │
└──────────────────────────────────────────────┼──────────────────────────────┘
│
┌──────────────────────────────────────────────┼─────────────────────────────┐
│ MONITORING LAYER │ │
│ ┌──────────────┐ ┌──────────────┐ ┌───┴───────────┐ │
│ │ Prometheus │───▶│ Jaeger │───▶│ Loki │ │
│ └──────────────┘ └──────────────┘ └───────────────┘ │
└────────────────────────────────────────────────────────────────────────────┘______________________________________________________________________
✨ 主要特点
🔄 数据摄入
- 持续摄入 使用dlt(数据加载工具)
- 实时流媒体 Kafka用于网络事件
- 数据质量检查 摄入时
🧹 \*\*dbt转换\*\*
- 暂存层: 带有审计列的原始摄入数据以及经过清理和确认的数据
- 数据类型标准化 - 去重 - 空处理 - 业务规则应用
- 马氏体层: 分析集市针对以下方面进行了优化:
- 收入分析 -月度、每日、产品级别 - 客户分析 -细分、CLV、队列 - 产品性能 -销售、库存、趋势 - 漏斗分析 -转换跟踪
🤖 AI x数据:MCP服务器
- SQL的自然语言 代
- 语义理解 商业问题
- 查询执行 结果分析
- 架构发现 和勘探
- 商业洞察 代
- 聊天风格界面 在Streamlit
- 本地法学硕士 (无API成本,隐私优先)
- 基于工具的架构 可扩展性
🧩 生产级可观察性
- 分布式跟踪 用于摄入和dbt运行
- 服务指标 (气流、dbt、MCP、Streamlit)
- 错误和延迟监控 有警报
- 日志聚合 与洛基
- 自定义业务指标 追踪
- SLA监控 并发出警报
- 性能评测 和优化
📊 交互式仪表板
- 高管仪表盘 -关键业务指标
- 收入趋势 -时间序列分析
- 事故影响 -实时监控
- 客户细分 -RFM分析
- 漏斗分析 -转换跟踪
- 产品性能 -BCG矩阵可视化
- 队列分析 -保留热图
- AI 副驾驶 -对话式数据探索
🔧 开发者体验
- 一个命令启动 -跨平台脚本
- 热重载 为了发展
- 文档 -内联和外部
- 健康检查 所有服务
- 错误处理 以及日志记录
______________________________________________________________________
🚀 快速开始
需求
- 码头工人 & Docker Compose (最新版本)
- 最低8GB RAM (建议全栈使用12GB+)
- 20GB可用磁盘空间
- 操作系统:
- ✅ macOS(英特尔和苹果硅) - ✅ Linux(Ubuntu、Debian、RHEL等) - ✅ Windows(WSL2、Git Bash、PowerShell、命令提示符)
1.克隆和设置
# Clone the repository
git clone https://github.com/Silism/silism-commerce-360-platform.git
cd silism-commerce-360-platform
# Copy environment template (auto-created if missing)
cp .env.example .env
# Edit environment variables (IMPORTANT: Change default passwords!)
nano .env # or use your preferred editor2.发射平台
跨平台启动脚本:
# Linux/macOS
./start-platform.sh
# Windows (Command Prompt or PowerShell)
start-platform.bat
# Windows (Git Bash or WSL)
./start-platform.sh脚本功能:
- ✅ 自动Docker健康检查
- ✅ 服务依赖性管理
- ✅ Ollama模型下载(首次运行)
- ✅ 数据库初始化
- ✅ 监控堆栈设置
- ✅ 全面的错误处理
手动启动(如果需要):
# Start core services only
docker-compose up -d
# Start with full monitoring stack
docker-compose -f docker-compose.yaml -f docker-compose.monitoring.yml up -d3.验证安装
# Check service status
docker ps
# View service logs
docker-compose logs -f4.访问服务
| 组件 | URL | 凭据 | 描述 |
|---|---|---|---|
| 流线型仪表板 | http://localhost:8501 | - | 主分析UI |
| 气流 | http://localhost:8080 | admin/(check.env) | 工作流编排 |
| 格拉法纳 | http://localhost:3001 | admin/(check.env) | 监控仪表板 |
| 猎手 | http://localhost:16686 | - | 分布式跟踪 |
| Kafka用户界面 | http://localhost:8081 | - | Kafka管理 |
| MCP服务器 | http://localhost:5000/health | - | 人工智能服务API |
| 普罗米修斯 | http://localhost:9090 | - | 指标数据库 |
| 在线时间监控熊 | http://localhost:3002 | - | 服务监控 |
5.初始数据加载
启动后,平台自动:
- ✅ 使用示例电子商务数据初始化PostgreSQL
- ✅ 启动Kafka事件流
然后,您必须启动气流数据,这将:
- ✅ 触发dlt摄入管道
- ✅ 运行dbt转换
- ✅ 填充DuckDB分析数据库
监控进度:
- 气流UI:检查DAG运行
- Grafana:查看管道指标
- Streamlit:探索数据产品
______________________________________________________________________
📊 平台组件
🟦 核心数据层
| 组件 | 用途 | 技术 | 存储 |
|---|---|---|---|
| OLTP数据库 | 事务数据 | PostgreSQL 15 | 持久卷 |
| 分析数据库 | 查询引擎 | DuckDB 0.10+ | 本地文件 |
| 事件流 | 实时事件 | Apache Kafka | 持久主题 |
| 数据摄入 | 管道框架 | dlt(数据加载工具) | 状态管理 |
| 数据转换 | SQL建模 | dbt Core 1.8+ | 编译的SQL |
🟩 业务流程层
| 组件 | 用途 | 技术 | 功能 |
|---|---|---|---|
| 工作流引擎 | DAG编排 | Apache Airflow 2.8+ | 调度器、执行器 |
| dbt集成 | 模型执行 | 天文学家Cosmos | 任务组、依赖关系 |
| 任务管理 | 并行执行 | Celery执行器 | 分布式工作器 |
| 元数据数据库 | 气流状态 | PostgreSQL | 连接池 |
🟧 人工智能和接入层
| 组件 | 目的 | 技术 | 能力 |
|---|---|---|---|
| MCP服务器 | AI网关 | Python FastAPI | REST API,工具执行 |
| LLM发动机 | 文本生成 | Ollama | 局部推理 |
| 模型 | 语言模型 | llama3.2,mistral | SQL生成,分析 |
| 语义层 | 业务逻辑 | 自定义Python | 度量定义 |
🟥 监控堆栈
| 组件 | 目的 | 技术 | 数据保留 |
|---|---|---|---|
| 指标 | 时间序列数据 | 普罗米修斯 | 15天 |
| 仪表盘 | 可视化 | Grafana | 实时 |
| 日志 | 聚合 | 洛基 | 7天 |
| 痕迹 | 分布式追踪 | Jaeger | 24小时 |
| 警报 | 通知路由 | AlertManager | 实时 |
| 运行时间 | 服务健康 | 正常运行时间Kuma | 历史 |
🟪 表示层
| 组件 | 用途 | 技术 | 功能 |
|---|---|---|---|
| 分析UI | 交互式仪表板 | Streamlit | 实时更新 |
| AI 副驾驶 | 聊天界面 | Streamlit+MCP | NL转SQL |
| 可视化 | 图表 | 绘图 | 交互式 |
| 数据探索器 | 即席查询 | SQL编辑器 | 导出到CSV |
______________________________________________________________________
📈 监测和可观察性
📊 预装Grafana仪表板
1.数据平台概述
- 服务运行状况(所有组件)
- 资源利用率(CPU、内存、磁盘、网络)
- 请求速率和延迟
- 错误率和类型
- 活动连接和查询
2.气流DAG性能
- DAG运行持续时间趋势
- 任务成功/失败率
- 队列深度和处理时间
- 调度器性能指标
- 工人利用率
3.MCP服务器监控
- AI查询延迟(p50、p95、p99)
- SQL生成成功率
- 工具执行指标
- LLM推理时间
- 错误跟踪和调试
4.Streamlit应用程序性能
- 页面加载时间
- 用户会话指标
- API响应时间
- 缓存命中率
- 组件渲染时间
🚨 警报规则
关键警报(PagerDuty/Slack)
- ❌ 服务中断(任何组件)
- ❌ 管道故障(数据摄取或转换)
- ❌ 数据库连接丢失
- ❌ 磁盘空间关键(>90%)
- ❌ 记忆力衰竭
警告警报(Slack/电子邮件)
- ⚠️ DAG运行缓慢(>2倍基线)
- ⚠️ 错误率高(>5%)
- ⚠️ 数据新鲜度违规(>4小时)
- ⚠️ 资源使用率高(>80%)
- ⚠️ Kafka消费者延迟增加
业务警报(电子邮件/仪表板)
- 📊 收入下降(与前一天相比>20%)
- 📊 事件数高(>10 SEV1/天)
- 📊 低订单量(异常检测)
- 📊 客户流失激增
- 📊 检测到产品缺货
📋 收集的指标
基础设施指标
- 每个服务的CPU使用率
- 内存消耗和限制
- 磁盘I/O和空间利用率
- 网络吞吐量和错误
- 容器重启计数
应用程序指标
- HTTP请求率和延迟
- 数据库查询性能
- 缓存命中率/未命中率
- 后台作业执行时间
- API端点响应时间
商业米制公约
- 收入(实时和历史)
- 订单计数和值
- 客户数量(活跃、新、流失)
- 产品销售和库存
- 转化漏斗指标
数据质量指标
- 数据新鲜度(上次更新时间戳)
- 完整性(零利率)
- 准确性(验证通过率)
- 一致性(跨表检查)
- 模式演化跟踪
🔍 分布式追踪
捕获的跟踪范围:
- dlt摄取管道执行
- dbt模型编译与执行
- 气流DAG和任务运行
- MCP工具调用
- SQL查询执行
- LLM推理请求
- API调用(内部和外部)
跟踪分析功能:
- 端到端延迟细分
- 瓶颈识别
- 错误传播跟踪
- 依赖关系映射
- 性能回归检测
______________________________________________________________________
🧪 测试与验证
自动化测试套件
1.服务健康检查
curl http://localhost:5000/health # MCP Server
curl http://localhost:8501/_stcore/health # Streamlit
curl http://localhost:9090/-/healthy # Prometheus
curl http://localhost:3001/api/health # Grafana2.dbt模型测试
# Run all dbt tests
docker exec silism-airflow-scheduler dbt test --project-dir /opt/airflow/include/dbt
# Test specific model
docker exec silism-airflow-scheduler dbt test --select fct_monthly_revenue
# Run data quality tests
docker exec silism-airflow-scheduler dbt test --select test_type:data4.AI/MCP功能测试
# Test MCP server endpoints
curl -X POST http://localhost:5000/ai/ask \
-H "Content-Type: application/json" \
-d '{"question": "What is our total revenue?"}'
# Test SQL generation
curl -X POST http://localhost:5000/ai/generate-sql \
-H "Content-Type: application/json" \
-d '{"question": "Show top 10 customers by revenue"}'______________________________________________________________________
🔒 安全
🔐 身份验证和授权
实现
- ✅ 密码保护的气流(用户名/密码)
- ✅ 受密码保护的Grafana(管理员用户)
- ✅ PostgreSQL身份验证(用户/密码)
- ✅ 基于环境的秘密管理
- ✅ Docker网络隔离
推荐用于生产
- 🔒 OAuth2/OIDC用于Streamlit
- 🔒 RBAC for Airflow(基于角色的访问控制)
- 🔒 机密管理器集成(AWS机密管理器、HashiCorp Vault)
- 🔒 基于证书的身份验证
- 🔒 用于外部服务的API密钥管理
🌐 网络安全
当前设置
- 用于服务通信的内部Docker网络
- 暴露的端口仅限于必要的服务
- 通过内部DNS进行服务间通信
- 无外部数据库访问权限(仅限本地主机)
生产建议
- 网络分段(DMZ、专用子网)
- VPC/VNET隔离
- 防火墙规则(入口/出口)
- 用于管理员访问的VPN或堡垒主机
- DDoS保护(CloudFlare、AWS Shield)
📁 数据安全
当前实施情况
- 敏感配置的环境变量
- 使用受限权限装载卷
- 数据库连接加密(TLS就绪)
- 秘密被隔离在
.env文件(gitignored)
生产最佳实践
- 静态加密(数据库、卷)
- 传输中的加密(到处都是TLS/SSL)
- PII的数据屏蔽
- 数据访问的审计日志记录
- 备份加密
- GDPR/CCPA合规措施
🔍 安全监控
监控事件
- 身份验证尝试失败
- 异常的资源使用模式
- 服务可用性异常
- 数据库连接失败
- 可疑的查询模式
- 容器重启事件
警报触发器
- 多次登录尝试失败(5分钟内>5次)
- 未经授权的访问尝试
- 特权升级尝试
- 数据泄露模式
- 配置更改
🛡️ 漏洞管理
- 定期依赖关系更新(Dependabot)
- 集装箱图像扫描(Trivy、Snyk)
- 安全补丁监控
- CVE跟踪和补救
- 渗透测试(建议每年进行一次)
______________________________________________________________________
🏢 关于Silism
Silism 是一个独立的数据和人工智能品牌,创建开源、企业级平台、工具和参考架构。
任务
帮助工程师、分析师和公司采用 具有人工智能原生功能的现代数据实践 通过:
- 📚 开源参考实现
- 🎓 教育内容和教程
- 🛠️ 生产就绪的工具和框架
- 🤝 社区驱动的发展
核心价值观
- 默认打开 -所有代码都是开源的
- 生产准备就绪 -企业级质量
- 人工智能原生 -专为人工智能时代打造
- 社区优先 -由用户需求驱动
- 云无关 -适用于所有地方
参与其中
- 🌟 在GitHub上标记此仓库
- 🐛 报告问题和错误
- 💡 建议功能和改进
- 🤝 贡献代码和文档
- 📢 分享你的成功故事
- 💬 加入我们的社区讨论
连接
- 网站: silism.com
- GitHub: @硅质岩
- 领英: Silism技术创新领域
- 推特: @硅质岩
- 油管: @硅质岩
______________________________________________________________________
📄 许可证
该项目根据 MIT许可证 -看看 许可证 文件以获取详细信息。
______________________________________________________________________
🙏 致谢
采用令人惊叹的开源技术构建:
特别感谢开源社区使这一切成为可能。
______________________________________________________________________
🎯 内置于❤️ Silism——用AI原生平台赋能数据团队
