本实践项目源于量潮科技前身 —— 厦门大学 China’s Prices Project(CPP)课题组十年前的积累。CPP 参考 MIT Billion Prices Project 和 Cavallo 的研究,基于中国官方 CPI 分类标准,每天采集天猫和京东平台 1000 余个关键词、约 500 万数据点,编制中国高频线上价格指数。
CPP 经历了从个人电脑爬虫到腾讯云服务器集群、从 13 人团队手动维护到自动化系统的技术演进,这些积累沉淀为本实践项目的课程设计基础。
十年后的今天,本项目采用 2026 年的最新技术栈重新实现这一经典课题:以对象存储替代本地文件、ClickHouse 替代 MongoDB、Python 自动化流水线替代手动运维,打造一套现代化、高可用的高频价格指数计算方案。
本课程为量潮科技在浙江理工大学计算机系开设的大数据实践课,历经多轮教学迭代验证。现基于校企合作经验,面向社会推出公开版本。
实践目标¶
熟练掌握对象存储的数据管理能力
利用 ClickHouse 实现高效的列式查询与价格指数构建
基于 Python 的自动化计算流程,实现一套自动化、高并发、可复用的价格指数计算和可视化体系
推荐阅读¶
消费者价格指数(CPI)是衡量通胀水平的重要宏观经济指标,但传统 CPI 依赖人工调研与月度统计更新,存在时效性差、颗粒度粗、覆盖不全等固有缺陷。
随着电商平台数据的大规模生成,构建高频(按日)价格指数成为可能。电商数据具备更新快、覆盖面广、精度高等优势,可突破传统 CPI 的限制,形成对市场更灵敏的监测手段。
了解项目背景和价格指数概念(以下为我司前身 CPP 课题组在知乎发布的专栏文章,记录了项目的完整发展历程):
China’s Prices Project(CPP)专栏文章
项目简介 —— China’s Prices Project:介绍项目目标、参考 MIT Billion Prices Project 与 Cavallo 的研究框架、基于官方 CPI 分类编制采集清单、每日采集天猫和京东约 500 万数据点
流水账 | CPP 的第一个半年:项目从零到一的历程,包括团队组建(13 人)、技术演进(从个人电脑定时爬虫到腾讯云服务器集群)、爬虫迭代(Tmall 第 23 版、JD 第 12 版)、小文件 CSV 存储带来的数据管理挑战
项目进展 | 2016 年 7 月:爬虫系统稳定运行三个月,面临硬件资源限制、分布式数据采集与集中存储的矛盾、MongoDB 数据库方案设计
项目成果 | Tmall Daily Price Index:基于官方 CPI 编制标准的 Tmall 日度环比指数成果展示,验证了电商数据构建高频价格指数的可行性
学术论文:Online and official price indexes: Measuring Argentina’s inflation(重点阅读 3.1,了解价格指数的编制方法)
数据源¶
联系教学团队获取我们制作的电商平台模拟数据集,主要包括:
category.csv:商品分类信息product.csv:商品表price.csv:商品每日价格与销量数据
架构设计¶
整合项目整体思路,包括存储、计算、可视化三个部分。
数据预处理¶
将数据集上传至对象存储,构建个人 Bucket 并配置权限
对接对象存储与 ClickHouse
对字段类型进行适配与转换,统一时间格式、价格单位、分类编码
价格指数核心算法¶
异常处理机制(ClickHouse 实现)¶
价格可能为空或存在异常值,需要在计算前进行清洗和过滤。
指数计算(支持链式)¶
设计分类价格指数:每类商品按销量加权平均价格
构建日价格指数时间序列,结合 GROUP BY 与 ARRAY JOIN 聚合
链式指数计算:当期指数基于上一期指数计算,通过环比连接保持指数连续性
可视化¶
采用 BI 工具或 Python matplotlib 等进行可视化,输出内容为日度指数趋势图。
测试与验证¶
单元测试¶
使用手工构造的小规模 CSV 上传对象存储,验证字段解析、SQL 输出正确。
集成测试¶
商品覆盖率达到 80% 以上
异常过滤准确性达到 95%(可选)
预期成果¶
设计文档¶
包括需求分析、表设计、核心 Python 代码逻辑、核心 SQL 代码逻辑。
实践报告¶
包括需求分析、表设计、SQL 算法及关键语句分析、详细设计(含代码)、结果分析(运行截图)、心得与反馈。
源程序¶
开发规范¶
代码规范¶
模块和类使用名词命名,函数使用动词命名
模块划分、类划分、函数划分职责清晰
参数设计合理,明确入参和出参
文档分类清晰:开发文档、用户文档用途明确
Git 规范¶
分支命名和使用方式遵循规范
Commit Message 遵循 Conventional Commits 规范
开发环境准备¶
IDE:VSCode 或 JetBrains(如 PyCharm)
编程语言:推荐 Python
AI 辅助插件:通义灵码
版本控制:Git,代码托管在 GitHub 或类似平台
文档格式:Markdown