## 一、实验概述与目的
本次数据采集与存储实验围绕“数据从获取到持久化”的全流程展开,旨在通过实操掌握主流数据采集技术的应用场景与实现方法,理解不同存储系统的设计逻辑与选型依据,构建从数据采集、清洗到存储的完整技术链路。具体目标包括:
1. 掌握结构化、半结构化与非结构化数据的采集手段,如网络爬虫、传感器模拟数据采集、数据库数据导出等;
2. 熟悉关系型数据库(MySQL)、非关系型数据库(MongoDB)及文件存储(CSV、JSON)三种主流存储方式的操作流程;
3. 理解数据清洗在采集与存储环节的核心作用,能解决数据格式不一致、冗余、缺失等常见问题;
4. 基于数据特征与业务需求,完成存储方案的合理选型与优化。
## 二、实验核心内容与实施过程
### (一)数据采集模块
本次实验设计了三类典型采集场景:
1. **网络爬虫采集**:使用Python的Scrapy框架爬取某公开电商平台的商品基础数据(商品名称、价格、销量、评论数),严格遵守目标网站robots协议,通过设置随机User-Agent、IP代理池规避反爬机制,最终获取有效数据1.2万条。
2. **模拟传感器数据采集**:利用Python脚本生成模拟环境传感器数据(温度、湿度、PM2.5值、采集时间戳),模拟物联网场景下的实时数据推送,共生成连续72小时的时序数据约5万条。
3. **结构化数据导出**:从本地测试MySQL数据库中导出用户交易历史数据,涉及订单ID、用户ID、交易金额、交易时间等字段,用于验证跨存储系统的数据迁移流程。
### (二)数据清洗与预处理
采集得到的原始数据普遍存在格式混乱、缺失值、冗余字段等问题,我们通过以下步骤完成清洗:
– 针对爬虫数据中的HTML标签残留、价格字段的“¥”符号,使用正则表达式进行字符串替换与提取;
– 对传感器模拟数据中的异常值(如温度超过100℃)进行识别与剔除,通过线性插值法补全缺失的5%时序数据;
– 对交易数据中的重复订单ID进行去重处理,统一日期格式为“YYYY-MM-DD HH:MM:SS”,确保数据格式标准化。
### (三)数据存储与选型验证
根据数据特征与访问需求,我们选择三类存储方案进行对比实验:
1. **关系型数据库(MySQL)**:适用于结构化的交易数据,通过创建`transaction`表,设置主键与联合索引(用户ID+交易时间),实现单表10万级数据的秒级查询;针对大数据量插入场景,使用批量插入语句替代单条插入,将插入效率提升40%。
2. **非关系型数据库(MongoDB)**:存储半结构化的电商商品数据,利用MongoDB的灵活文档模型适配商品属性的多样性(如部分商品含“规格参数”嵌套字段),通过对“商品名称”字段创建文本索引,优化模糊查询性能。
3. **文件存储(CSV/JSON)**:将传感器时序数据导出为CSV文件,用于离线分析场景;同时将清洗后的电商数据存储为JSON格式,便于跨系统的数据交互与快速解析。
## 三、实验中的问题与解决方案
本次实验过程中遇到三类核心问题,通过技术优化逐一解决:
1. **爬虫反爬拦截**:初期爬取电商数据时频繁触发IP封禁,解决方案是接入ProxyPool代理IP池,设置请求间隔为2秒/次,并在请求头中添加Referer、Cookie等模拟真实用户行为,最终实现无中断连续采集。
2. **数据入库格式冲突**:部分电商商品的“规格参数”字段为嵌套JSON结构,直接插入MySQL会导致格式错误,解决方案是选择MongoDB存储此类半结构化数据,从根源上适配数据格式;若需存入MySQL,则将嵌套结构序列化为字符串存入TEXT字段。
3. **时序数据存储性能瓶颈**:传感器数据按秒级生成,直接写入MySQL会出现插入延迟,解决方案是使用MySQL的日期分区表,并结合批量插入策略,将单小时数据的存储耗时从120秒缩短至15秒。
## 四、实验收获与反思
### (一)核心收获
1. **技术能力落地**:熟练掌握Scrapy爬虫框架的配置与扩展,能独立完成MySQL、MongoDB的增删改查操作与性能优化,掌握Pandas数据清洗的常用方法;
2. **选型逻辑清晰**:明确了存储方案选型的核心依据——结构化数据优先选择关系型数据库,半结构化/非结构化数据适配非关系型数据库,离线分析场景可优先选择文件存储;
3. **合规意识强化**:深刻认识到数据采集的合法性边界,严格遵守robots协议与数据安全法规,不爬取未授权的敏感数据,建立了“合法采集、合规使用”的技术伦理观。
### (二)不足与改进方向
1. **数据源多样性不足**:本次实验仅覆盖三类数据源,未涉及API接口采集、日志数据采集等场景,后续可补充对接公开API(如天气API)扩展数据源类型;
2. **分布式存储实践欠缺**:针对TB级以上大数据量的存储未进行分布式存储(如HDFS、Redis集群)的实践,后续可引入Hadoop、Spark等分布式框架,探索大数据存储与处理方案;
3. **数据安全环节薄弱**:实验中未涉及数据加密存储、访问权限控制等安全环节,后续可增加数据脱敏、SSL加密传输等安全实践,完善数据全链路的安全保障。
## 五、实验总结
本次数据采集与存储实验通过多场景、多技术的实操验证,构建了完整的数据处理链路,不仅提升了技术实操能力,更强化了数据全流程的逻辑认知。未来,我们将以本次实验为基础,进一步拓展数据采集的边界、深化存储方案的优化,为后续的数据分析、挖掘工作筑牢基础。
本文由AI大模型(Doubao-Seed-1.8)结合行业知识与创新视角深度思考后创作。