用途:基于哈佛艺术博物馆 API 构建完整数据工程流水线,演示从 API 取数、ETL、关系型数据库建模、SQL 分析到交互式仪表盘可视化的全流程,架构为 API → ETL → SQL → Analytics → Visualization。
主要能力:Extract 阶段通过分页与限流从 API 拉取文物数据(仅取有图像的记录);Transform 阶段将嵌套 JSON 转为规范化的元数据、媒体、颜色三张表;Load 阶段用批量插入写入 MySQL/TiDB Cloud(含 ON DUPLICATE KEY UPDATE);Analyze 阶段提供按文化、世纪、部门、浏览量、颜色分布等分析查询;Visualize 阶段用 Plotly 与 Streamlit 渲染交互仪表盘,含数据采集、SQL 分析、可视化三个页面。
使用方式:克隆仓库后 cd 进目录,执行 pip install -r requirements.txt 安装依赖(streamlit、pandas、requests、mysql-connector-python、plotly、python-dotenv)。在根目录创建 .env,填写 HARVARD_API_KEY 及 DB_HOST、DB_PORT(默认 3306)、DB_USER、DB_PASSWORD、DB_NAME=harvard_artifacts。API key 需在哈佛艺术博物馆 API 官网免费注册获取。初始化数据库表可使用文档中的 setup_database() 示例,运行仪表盘命令为 streamlit run app.py。文档还给出分页采集、限流装饰器、指数退避重试、批处理、Streamlit 缓存等常见模式与排错方法。
适用场景:数据工程学习与教学、艺术品数据的采集分析、SQL 分析练习、Streamlit 可视化原型。
限制:需自行准备 API key 与数据库环境;示例代码为演示性质,批量插入媒体与颜色表需自行补全对应加载函数;实际写入量、限流阈值及数据库版本兼容性等资料未明确说明。