目 录CONTENT

文章目录

5 个对忙碌的数据工程师有用的 Python 脚本

Administrator
2025-11-15 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

📢 转载信息

原文链接:https://www.kdnuggets.com/5-useful-python-scripts-for-busy-data-engineers

原文作者:Bala Priya C



5 Useful Python Scripts for Busy Data Engineers
Image by Author

 

# 引言

 
作为数据工程师,您很可能(至少在一定程度上)负责您组织的数据基础设施。您构建数据管道、维护数据库、确保数据顺畅流动,并在出现问题时进行故障排除。但问题是:您每天有多少时间用于手动检查管道健康状况、验证数据加载或监控系统性能?

如果诚实地说,这可能占据了您大量的时间。数据工程师在日常工作中花费大量时间处理运维任务——监控作业、验证模式、跟踪数据血缘和响应警报——而本可以用于构建更优系统的。

本文将介绍五个专门设计用于解决占用您宝贵工程时间的重复性基础设施和运维任务的 Python 脚本。

🔗 在 GitHub 上查看代码链接

 

# 1. 管道健康监测器

 
痛点:您在不同的时间表上运行着数十个 ETL 作业。有些是每小时运行,有些是每日或每周运行。检查它们是否全部成功完成,意味着需要登录到各种系统、查询日志、检查时间戳,并将实际情况拼凑起来。等到您意识到某个作业失败时,下游流程可能已经中断了。

脚本功能:在一个地方监控所有数据管道,跟踪执行状态,对失败或延迟发出警报,并维护作业性能的历史记录。提供一个集中的健康仪表板,显示正在运行的内容、失败的内容以及哪些耗时超出了预期。

工作原理:该脚本连接到您的作业编排系统(如 Airflow,或从日志文件中读取),提取执行元数据,与预期的调度和运行时间进行比较,并标记异常情况。它会计算成功率、平均运行时间,并识别失败的模式。在检测到问题时可以发送电子邮件或 Slack 警报。

获取管道健康监测脚本

 

# 2. 模式验证器和变更检测器

 
痛点:您的上游数据源会无预警地更改。某个列被重命名、数据类型发生变化,或者出现了一个新的必需字段。您的管道因此中断,下游报告失败,您可能正忙于弄清楚哪里出了问题以及发生了什么变化。模式漂移是数据管道中一个非常突出的问题。

脚本功能:自动将当前表模式与基线定义进行比较,检测列名、数据类型、约束或结构中的任何变化。生成详细的变更报告,并可以强制执行模式契约,以防止破坏性变更传播到您的系统中。

工作原理:该脚本从数据库或数据文件中读取模式定义,将其与存储的基线模式(存储为 JSON)进行比较,识别添加、删除和修改,并记录所有带有时间戳的变更。它可以在处理前验证传入数据是否符合预期模式,并拒绝不合规的数据。

获取模式验证器脚本

 

# 3. 数据血缘追踪器

 
痛点:有人询问“这个字段来自哪里?”或“如果我们更改这个源表会发生什么?”,而您没有好的答案。您需要深入研究 SQL 脚本、ETL 代码和文档(如果存在的话)来追踪数据流。理解依赖关系和影响分析需要花费数小时甚至数天,而不是几分钟。

脚本功能:通过解析 SQL 查询、ETL 脚本和转换逻辑来自动映射数据血缘。显示从源系统到最终表的完整路径,包括应用的所有转换。生成可视化的依赖关系图和影响分析报告。

工作原理:该脚本使用 SQL 解析库从查询中提取表和列引用,构建数据依赖的有向图,跟踪每个阶段应用的转换逻辑,并可视化完整的血缘。它可以执行影响分析,显示受给定源头任何更改影响的下游对象。

获取数据血缘追踪器脚本

 

# 4. 数据库性能分析器

 
痛点:查询运行速度比平时慢。您的表正在膨胀。索引可能丢失或未被使用。您怀疑存在性能问题,但确定根本原因需要手动运行诊断、分析查询计划、检查表统计数据和解释晦涩的指标。这是一项耗时的工作。

脚本功能:通过识别慢查询、缺失的索引、表膨胀、未使用的索引和次优配置来自动分析数据库性能。提供可操作的建议,说明预期的性能影响,并提供用于实现修复的确切 SQL 语句。

工作原理:该脚本查询数据库系统目录和性能视图(PostgreSQL 的 pg_statsMySQL 的 information_schema 等),分析查询执行统计数据,识别高顺序扫描率(表明缺少索引)的表,检测需要维护的膨胀表,并根据潜在影响对优化建议进行排序。

获取数据库性能分析器脚本

 

# 5. 数据质量断言框架

 
痛点:您需要在整个数据管道中确保数据质量。行数是否符合预期?是否存在意外的空值?外键关系是否成立?您需要为每个表手动编写这些检查,分散在各个脚本中,没有一致的框架或报告。当检查失败时,您得到的是模糊的错误信息,缺乏上下文。

脚本功能:提供一个将数据质量断言定义为代码的框架:行数阈值、唯一性约束、引用完整性、值范围和自定义业务规则。自动运行所有断言,生成带有失败上下文的详细报告,并与管道编排集成,在质量检查不通过时使作业失败。

工作原理:该脚本使用声明性断言语法,您可以用简单的 Python 或 YAML 定义质量规则。它会对数据执行所有断言,收集带有详细失败信息的(哪些行失败,哪些值无效)结果,生成全面的报告,并可以集成到管道 DAG 中作为质量门,防止不良数据传播。

获取数据质量断言框架脚本

 

收尾

 
这五个脚本着重解决了数据工程师经常遇到的核心运维挑战。以下是这些脚本功能的快速回顾:

  • 管道健康监测器为您提供所有数据作业的集中可见性
  • 模式验证器在破坏您的管道之前捕获破坏性变更
  • 数据血缘追踪器映射数据流并简化影响分析
  • 数据库性能分析器识别瓶颈和优化机会
  • 数据质量断言框架通过自动化检查确保数据完整性

正如您所见,每个脚本都解决了特定的痛点,可以单独使用,也可以集成到您现有的工具链中。因此,选择一个脚本,首先在一个非生产环境中进行测试,根据您的具体设置进行定制,然后逐步将其集成到您的工作流程中。

数据工程愉快!
 
 

Bala Priya C 是来自印度的一名开发人员和技术作家。她喜欢在数学、编程、数据科学和内容创作的交叉点上工作。她的兴趣和专业领域包括 DevOps、数据科学和自然语言处理。她喜欢阅读、写作、编码和咖啡!目前,她正致力于通过撰写教程、操作指南、观点文章等方式学习并与开发者社区分享她的知识。Bala 还创建引人入胜的资源概览和编码教程。




🚀 想要体验更好更全面的AI调用?

欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。

0

评论区