数据分析师所需的编程技能:脚本调度

脚本调度在数分工作中十分常见。

比如一些核心数据老板想每天都看到,如果每天早上都来做一遍数据整理并发送,这样效率太低了。正确的做法是写好python脚本,每天定时调度它,自动发送邮件日报给老板。

又比如某个数据库的表格数据量实在太大了,想提高查询效率,可以写一个中间表,每天凌晨定时插入过滤后的数据,往后查询就只需查找这个数据量较少的中间表即可。总之,脚本调度很重要,学就是。总结两种调度方法:1、Linux crontab调度 。2、windows任务计划程序

 

Linux crontab调度

使用这种调度方法有些前提条件:

1、需要懂一些常用的linxu语句

2、需要一台服务器

 

Linux crontab调度语法

crontab的命令构成是时间+动作,其时有分时日月周5种,对应的顺序如下图:

第1列表示分钟1~59 每分钟用*或者 */1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

第6列要执行的命令

* * * * *  command
分时日月周 调度脚本的命令

用一些例子继续讲述,假设我想每天凌晨1点30分调度在/home/data/路径下的run.py的文件,那这样写:

30 01 * * * python3 /home/data/run.py
分 时 日月周 python  绝对路径/py脚本

还需注意一些crontab的操作符:


*(星号):此操作符为字段指定所有可用的值。举个例子,在小时字段中,一个星号等同于每个小时;在月份字段中,一个星号则等同于每月。

,(逗号):代表分隔时段的意思。举例来说,如果要执行的工作是每天的2点和4点时候,这么写。

0 2,4 * * * command

-(减号):代表一段时间范围内,举例来说,8点到12点之间的每小时的20分都进行一项工作:

20 8-12 * * * command

其实它等同于。

20 8,9,10,11,12 * * * command

/n(斜线):n代表数字,即是每隔n单位间隔的意思,例如每五分钟进行一次,则:

*/5 * * * * command

crontab使用步骤及相关操作:

1、安装日志来检测任务是否真正被执行了

2、启动crontab,第1、2步只有初次使用才需要,往后直接进行第三步即可。

3、编辑crontab任务,会需要一个vim文档

在文档的最后面进行编辑。这里的意思是每分钟会在目录下创建一个空白文件。

4、添加完crontab命令后,按ctrl + o,然后按回车键,在按ctrl +x 退出编辑,这时服务器会显示出:installing new crontab,代表crontab插入成功。

5、我们可以用crontab -l查看添加了什么调度任务

6、通过日志查看执行情况

7、可以用crontab -r删除crontab任务

 

windows任务计划程序

windows的任务计划程序优点很明显,不用写命令,操作图形化。缺点也明显:需要保持电脑在调度时间不关机以及不能直接跑python脚本,需要把py打包成exe。

首先先说说怎么把python脚本包装成exe程序,这块其实很简单。

1、安装 pyinstaller库

pip install pyinstaller

2、将D盘Data文件夹的run.py打包exe

pyinstaller -F D:\Data\run.py

3、生产的exe文件会在自动生成的dist文件夹下

包装好exe后,说说windows任务计划程序怎么用?

1、打开任务计划程序

右键计算机 → 管理 → 任务计划程序

 

2、创建基本任务

创建基本任务 → 输入任务名称 → 触发器(选择触发时间或触发规则)

→ 操作(选择启动程序/发送电子邮件/显示消息,由于我们是运行py脚本,所以选择启动程序) → 启动程序(选择python脚本的exe) → 完成

 

两种调度方法已总结完毕,感谢阅读!

一个记录会计到数据、算法路上所学的微信公众号:Dathon

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值