电网数据ETL工具

智能电网数据抽取、转换、加载系统使用手册

📋 概述

本ETL工具专门用于处理电网系统的四种核心数据类型,支持从JSON文件批量导入数据到MySQL数据库。工具具备完善的数据清洗、容错处理和日志记录功能。

支持的数据类型:
SOE 遥测 遥信 遥控

🚀 快速开始

基本语法

python3 data_etl.py <数据类型> <文件名>

数据类型说明

数据类型 参数值 对应表 说明
SOE事件 soe soe_data 电网事件序列记录
遥测数据 telemetry telemetry_data 电压、电流、功率等测量数据
遥信数据 telesignaling telesignaling_data 开关状态、报警信号等
遥控数据 telecontrol telecontrol_data 远程控制操作记录

💻 使用示例

1. 处理SOE数据

$ python3 data_etl.py soe soe_20250710094900.json.finish
2025-11-13 14:00:19,286 - INFO - 成功读取文件 soe_20250710094900.json.finish,包含 40 条记录 2025-11-13 14:00:19,289 - INFO - 数据库连接成功 2025-11-13 14:00:19,301 - INFO - 数据处理完成 - 成功: 40, 失败: 0 2025-11-13 14:00:19,301 - INFO - 数据库连接已关闭 2025-11-13 14:00:19,302 - INFO - ETL处理完成

2. 处理遥测数据

$ python3 data_etl.py telemetry devanalog_20250710100000.json.finish
2025-11-13 14:01:01,449 - INFO - 成功读取文件 devanalog_20250710100000.json.finish,包含 70416 条记录 2025-11-13 14:01:01,453 - INFO - 数据库连接成功 2025-11-13 14:01:11,703 - INFO - 数据处理完成 - 成功: 70416, 失败: 0 2025-11-13 14:01:11,703 - INFO - 数据库连接已关闭 2025-11-13 14:01:11,749 - INFO - ETL处理完成

3. 处理遥信数据

$ python3 data_etl.py telesignaling state_20250710103200.json.finish
2025-11-13 14:01:45,607 - INFO - 成功读取文件 state_20250710103200.json.finish,包含 8 条记录 2025-11-13 14:01:45,610 - INFO - 数据库连接成功 2025-11-13 14:01:45,618 - INFO - 数据处理完成 - 成功: 8, 失败: 0 2025-11-13 14:01:45,618 - INFO - 数据库连接已关闭 2025-11-13 14:01:45,618 - INFO - ETL处理完成

4. 处理遥控数据

$ python3 data_etl.py telecontrol ctrl_20250710103300.json.finish
2025-11-13 14:02:05,606 - INFO - 成功读取文件 ctrl_20250710103300.json.finish,包含 1 条记录 2025-11-13 14:02:05,609 - INFO - 数据库连接成功 2025-11-13 14:02:05,614 - INFO - 数据处理完成 - 成功: 1, 失败: 0 2025-11-13 14:02:05,614 - INFO - 数据库连接已关闭 2025-11-13 14:02:05,614 - INFO - ETL处理完成
✅ 处理成功标志:所有记录的"失败: 0"表示数据完整性良好,无数据清洗或转换错误。

📊 性能统计

基于实际运行结果的性能数据:

70,416 最大单批处理记录数
10.3秒 7万条遥测数据处理时间
6,836 每秒处理记录数(遥测)
100% 数据处理成功率

⚙️ 系统配置

环境要求

安装依赖

pip install pymysql

数据库连接配置

参数
主机localhost
端口3306
数据库smart_dms_db
字符集utf8

🔧 数据清洗功能

自动处理项目

💡 提示:工具采用INSERT语句,只新增数据,不会覆盖或更新已有记录,保证数据安全性。

📝 日志说明

日志级别

级别说明示例
INFO 正常处理信息 数据库连接成功、处理完成统计
WARNING 数据清洗警告 日期格式转换失败、字符串截断
ERROR 严重错误 数据库连接失败、文件读取错误

日志文件

日志同时输出到控制台和 data_etl.log 文件,便于问题追踪和系统监控。

❗ 注意事项

文件格式要求

  • 输入文件必须是有效的JSON格式
  • JSON文件编码必须为UTF-8
  • JSON根节点必须是数组格式 [{...}, {...}]

数据安全

  • 工具使用数据库事务,处理失败时自动回滚
  • 单条记录错误不影响其他记录处理
  • 所有操作记录详细日志,便于问题定位

🔍 故障排除

常见问题

问题可能原因解决方案
数据库连接失败 MySQL服务未启动或连接参数错误 检查MySQL服务状态和连接配置
JSON解析错误 文件格式不正确或编码问题 验证JSON格式,确保UTF-8编码
数据处理失败 数据格式与预期不符 查看详细日志,检查数据样本格式

性能优化建议