用途:该项目演示如何用哈佛艺术博物馆 API 构建完整数据工程管道,从数据抽取、转换、加载到 SQL 分析与交互式可视化,可作为生产级管道的参考架构。
主要能力:通过 API 分页抓取带图片的藏品数据并做限流;将嵌套 JSON 转换为规范化的多表关系模型(元数据、媒体、颜色三张表,含外键);提供 20 多个预定义 SQL 分析查询(如文化分布、世纪分布、媒体可用率、常见颜色、部门分布等);用 Streamlit 与 Plotly 构建仪表盘,支持运行 ETL、执行查询并自动生成图表。
使用方式:克隆仓库后执行 pip install -r requirements.txt,依赖包括 streamlit、pandas、requests、mysql-connector-python、plotly、python-dotenv。在 .env 中配置 HARVARD_API_KEY 及 DB_HOST、DB_PORT、DB_USER、DB_PASSWORD、DB_NAME。API 密钥需在哈佛艺术博物馆官网免费申请(非商业用途)。数据库支持 MySQL 与 TiDB Cloud,建库语句为 CREATE DATABASE harvard_artifacts; USE harvard_artifacts;,表由 ETL 自动创建。运行 streamlit run app.py,默认访问 http://localhost:8501。
适用场景:数据工程学习与教学、ETL 与 SQL 分析演示、仪表盘原型搭建。
限制:资料未提供具体收费、性能指标或数据规模上限;API 密钥与数据库需自行准备;示例默认抓取 5 页数据,大规模数据需分块处理;端口冲突可用 --server.port 8502 调整。