用python脚本来提高工作效率

作为一名数据分析师,日报、周报、月报数据一个也不能少。 相应的, 就要在数据库中提取大量的数据, 并处理大量的Excel表格。

自己在工作中使用的最多的就是Hive-SQL查询语句,很多时候,每天的运行的SQL语句只需要改个日期即可。 但如果你每一天都要对每条SQL语句改日期, 然后再把每条SQL语句粘贴到数据库中跑的话, 会特别的费时耗力。 我们可以写个简单的Python脚本, 这样每次运行前只需要改一次日期,就可以将所有SQL语句运行一遍, 大大提高工作效率。

1. 首先, 用Python连接数据库

对于数据库的ip地址,用户名,密码等, 如果不清楚,或数据库连接不上, 需要和开发人员对接

from pyhive import hive 

import time

conn = hive.Connection(host='ip地址', port=10000, username='用户名', database = 'default', auth='NOSASL')

cursor = conn.cursor()

2. 设置开始和结束时间

这样只要sql语句不变, 我们跑sql时, 只需要改日期即可。

startdate = '2018-09-01'
enddate   = '2018-09-19'

3. 用Python中的format函数将日期传入{}中

  • python中写sql脚本时, 需要用\来进行换行符的转换, \后面不能有空格。

  • 日期用两个{}来代替, 用format函数将开始日期与结束日期传入

# 提取积分类uv,pv数据

sql_jifenxinxi_an = 'select \
    count(distinct user_account) as uv, \
    count(1) as pv \
from \
    computer_view.client_android_log_view \
where \
    hit_date between "{}" and "{}" \
    and \
    (btn_position like "服务-查询-积分信息%" \
    or \
    btn_home = "积分-扇形左" \
    ) \
limit 1000'.format(startdate,enddate)

cursor.execute(sql_jifenxinxi_an)
print(cursor.fetchall())


我们可以按照这个格式写工作中需要运行的多个SQL语句。 这样, 当脚本运行的时候, 我们可以腾出时间来去干其他工作, 等过一段时间,所有的SQL语句都跑完了, 我们再进行统一的整理。

    原文作者:鬼宇书生
    原文地址: https://www.jianshu.com/p/8653f16fac49
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞