Skip to content

基于 Python 的 ETL 流水线,用于标准化 12 个制造基地的异构 IoT 配置数据。具备自动架构映射、多源合并及用于配置生命周期管理的每日变更日志生成功能--自动化聚合 50W+ IoT 资产并生成每日审计追踪,确保平台逻辑与边缘侧实施的一致性。

License

Notifications You must be signed in to change notification settings

mzr312312/iot-config-ledger

Repository files navigation

Cross-Site IoT 配置台账 & Daily Changelog(配置审计/运维辅助工具链)

概览:从 12 个生产基地的 IoT 配置库抽取数据,生成统一配置台账(Excel)与每日变更日志(新增/删除/字段级 diff),用于审计追溯与运维排障。

面向“多基地/多实例”的 IoT 配置运营场景:从多个生产基地的关系型数据库抽取配置与字典数据,生成可检索的统一配置台账每日变更日志(审计/追溯用)。
仓库默认以“某制造企业 / 某 IoT 平台 / 某 EMS”的匿名方式描述,示例字段/截图可按需脱敏补充。


适用场景

  • 多基地配置分散:同一套业务在 12 个生产基地分别维护配置,排障/核对需要跨基地查看。
  • 配置变更频繁:配置可能在小时级变化,靠人工“盯”和反复拼表不可持续。
  • 平台缺口:上游平台缺少“跨基地合并台账 / 每日变更追踪”这类运营能力时,需要一条轻量流水线先把结果跑出来。

产物

1) 合并后的配置台账(Excel)

  • 每个基地从多张原始表(约 7 张)+ 字典表(约 8 张)抽取并加工
  • 合并后每基地沉淀为 2 张“全字段”台账表(将关键字段集中在少量表内,便于筛选/联查)
  • 支持跨基地汇总导出(每基地分页 + 汇总页)

2) 每日变更日志(Excel)

  • 对比“本次生成的合并结果”与“上一基准结果”
  • 输出:
    • 新增记录
    • 删除记录
    • 修改明细(字段级 diff)
  • 用途:审计追溯、快速定位“哪里变了/谁改了/何时改了”(如源表存在更新时间/更新人字段则会随输出携带)

规模与效果(示例量级)

  • 覆盖:12 个基地
  • 资产规模:50 万+采集点10 万+聚合关系
  • 运营侧常见代价(引入本工具链前):
    • 多表(≥5 张)反复 VLOOKUP 拼接台账(约 10 分钟/次)
    • 配置可能 1 小时内变化导致台账失效,一天需要重复拼接多次
    • 人工对账/肉眼盯变更,错误与遗漏概率高
  • 引入后:
    • 一键生成台账 + 自动输出每日变更日志
    • 将“重复拼表 + 肉眼对比”替换为可审计的结构化结果

注:README 保持“产品/工具说明”的语气;具体数字可在私有场景中继续细化(例如日均运行耗时、单次导出行数、变更条数分布等)。


目录导览(核心脚本)

  • 0_run_all.py:流水线编排入口(串起 1~5 脚本,并写执行日志)
  • 数据同步
    • 1_copy_to_local.py:从各基地数据库同步到本地 MySQL(按配置映射)
    • 1_copy_ems_to_local.py:从某 EMS(PostgreSQL)同步到本地 MySQL(含类型映射/字段清洗)
  • 数据加工
    • 2_table_aggregator.py:按配置文件生成“汇总表”(JOIN 字典表、字段映射、基地命名等)
  • 台账导出与合并
    • 3_merge_tables.py:导出并合并“采集点/设备/数据源”等台账
    • 4_merge_calc_tables.py:导出并合并“计算逻辑/聚合关系”等台账
    • 5_Equipment Ledger Merge.py:设备台账相关额外合并处理
  • 变更审计
    • 6_daily_changelog.py:在合并结果上做每日对比,导出新增/删除/修改明细
  • 工程化
    • 0_run_all.spec:PyInstaller 打包配置(可交付给非开发同学运行)
    • 定时执行数据库文件.bat:Windows 批处理(全量更新→等待→生成变更日志)

工作流(Pipeline)

  1. 抽取/同步:从各基地关系型数据库 + EMS 抽取配置与字典表 → 同步至本地 MySQL
  2. 加工:按字段映射与 JOIN 规则生成面向运营的“汇总表”
  3. 导出:将汇总表导出为 Excel 台账(按基地拆分 + 汇总合并)
  4. 对比:基于上次结果生成每日变更日志(新增/删除/修改)

快速使用

生产凭据不进入仓库:通过本地配置文件注入连接参数(不提交任何可用账号/密码/IP)。

环境

  • Python 3.9+(Windows 环境验证较多)
  • 常用依赖(按脚本 import 推断):
    • pandas
    • pymysql
    • sqlalchemy
    • openpyxl
    • xlsxwriter
    • mysql-connector-python
    • psycopg2

建议创建虚拟环境并安装依赖:

python -m venv .venv
# Windows
.\.venv\Scripts\activate
pip install pandas pymysql sqlalchemy openpyxl xlsxwriter mysql-connector-python psycopg2-binary

运行方式 A:直接跑流水线

python 0_run_all.py

运行方式 B:一键批处理(含“等待 + 生成日报”)

运行仓库内 .bat:先全量更新并导出台账,等待文件落盘后再执行 6_daily_changelog.py 生成每日变更日志。

About

基于 Python 的 ETL 流水线,用于标准化 12 个制造基地的异构 IoT 配置数据。具备自动架构映射、多源合并及用于配置生命周期管理的每日变更日志生成功能--自动化聚合 50W+ IoT 资产并生成每日审计追踪,确保平台逻辑与边缘侧实施的一致性。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published