python数据处理之自动化与规模化
Posted 秋华
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python数据处理之自动化与规模化相关的知识,希望对你有一定的参考价值。
1 前沿
1.1 适合自动化的任务
每周二输出一些新的分析结果,编制一份报告,并发送给相关方
其他部门或同事需要能够在没有你的指导和支持下运行报告工具和清洗工具
每周进行一次数据下载、清洗和发送
每次用户请求新报告,报告脚本需要运行,并且在报告生成后通知用户
你需要每周清洗一次数据库里面的错误数据,并将其备份到其他地方
1.2 不适合自动化的任务
任务很少发生,并且非常复杂,自己做更好
任务的成功输出很难确定
任务需要与人交互来确定合适的完成方式
任务是成功的当务之急
2 自动化步骤
文档化下面的问题
a.任务开始时间
b.任务是否有时间限制或最大长度?如果有,什么时候结束
c.对任务,有哪些必要的输入
d.对任务,什么是成功什么是部分成功
e.任务失败,应该发生什么
f.任务产生或提供什么?面向谁?以何种方式
g.任务结束后应该发生什么
自动化基本步骤
a.定义你的问题集合,将其分解为更小的工作块
b.精确地描述每一个子任务的输入是什么、输入做什么以及需要什么来确认任务完成
c.确定哪里可以得到输入,以及何时运行任务
d.开始编码你的任务,用真实或样例数据测试
e.整理你的任务和脚本,添加文档
f.添加日志,聚焦于调试错误和记录成功的任务
g.提交你的代码到仓库中,手动测试它,按照需要作出修改
h.通过将手动任务替换为自动化任务,为自动化准备脚本
l.在任务开始自动化后,关注日志和警报。修正所有的错误和bug。更新你的测试和文档
m.为日志中的错误检查频率制定一个长期计划
一个运行良好的自动化任务集合需要一些时间来完成,但是结果通常比那些需要一直关注、修改和监控的一次性脚本要好
3 出错点
可能的错误
a.数据库连接错误导致丢失或损坏数据
b.脚本漏洞和错误,任务没有正确完成
c.来自网站或API的超时错误或者过多的请求错误
d.边界问题,报告的数据或一部分没有保证一直,导致脚本错误
e.服务器负载问题或其他硬件问题
f.时间不当,竞争条件
构建弹性自动化系统的方式
以特定的时间间隔重复失败的任务
确保你的代码有很多try ... except 代码块,让它能够处理错误
在处理到机器、数据库或API的连接的代码周围,构建特殊的异常代码块
定期维护和监控你为自动化使用的机器
使用测试数据定期测试你的任务和自动化程序,确保它们正常执行
注意脚本中出现的依赖、竞争条件和API规则,根据这些知识编写代码
使用类似requests和multiprocessing的库
4.在哪里自动化
5.自动化的特殊工具
5.1 使用本地文件、参数及配置文件
5.2 使用云
5.3 使用并行处理
5.4 使用分布式处理
以上是关于python数据处理之自动化与规模化的主要内容,如果未能解决你的问题,请参考以下文章