用途:该项目是一个基于哈佛艺术博物馆 API 的端到端数据工程与分析应用,用于演示真实场景下的 ETL 管道、SQL 数据库设计、分析查询与交互式可视化。数据流为 API → ETL → SQL → 分析 → 可视化。
主要能力:从哈佛艺术博物馆 API 分页采集文物数据并做速率限制;将嵌套 JSON 转换为规范化的关系表;加载到 MySQL/TiDB Cloud 数据库;提供 20 多个预定义 SQL 分析查询;通过 Streamlit 中的 Plotly 交互式仪表板展示结果。数据库使用三张规范化表:artifactmetadata、artifactmedia、artifactcolors。
使用方式:克隆仓库后安装依赖并配置环境变量。
git clone https://github.com/Manali0711/Harvard-Artifacts-Collection-Data-Engineering-Analytics-App.git cd Harvard-Artifacts-Collection-Data-Engineering-Analytics-App pip install -r requirements.txt export HARVARD_API_KEY="your_api_key_here" export DB_HOST="your_database_host" export DB_USER="your_database_user" export DB_PASSWORD="your_database_password" export DB_NAME="harvard_artifacts"
依赖包括 streamlit、pandas、requests、mysql-connector-python、plotly、python-dotenv。API 密钥需从哈佛艺术博物馆 API 免费申请。运行应用:streamlit run app.py。数据库初始化:mysql -u $DB_USER -p -e "CREATE DATABASE harvard_artifacts;" 以及 mysql -u $DB_USER -p harvard_artifacts < schema.sql。
适用场景:数据工程教学与演示、ETL 与 SQL 分析练习、博物馆藏品数据分析与可视化原型。
限制:需要自行申请 API 密钥并准备 MySQL/TiDB 数据库;API 存在速率限制,可增大 time.sleep 延迟;大数据集需分块处理以避免内存问题;缺失值需在插入前处理。具体收费、价格与平台支持范围暂未提供。