用python腳本來(lái)提高工作效率

作為一名數(shù)據(jù)分析師,日?qǐng)?bào)、周報(bào)、月報(bào)數(shù)據(jù)一個(gè)也不能少。 相應(yīng)的, 就要在數(shù)據(jù)庫(kù)中提取大量的數(shù)據(jù), 并處理大量的Excel表格。

自己在工作中使用的最多的就是Hive-SQL查詢語(yǔ)句,很多時(shí)候,每天的運(yùn)行的SQL語(yǔ)句只需要改個(gè)日期即可。 但如果你每一天都要對(duì)每條SQL語(yǔ)句改日期, 然后再把每條SQL語(yǔ)句粘貼到數(shù)據(jù)庫(kù)中跑的話, 會(huì)特別的費(fèi)時(shí)耗力。 我們可以寫(xiě)個(gè)簡(jiǎn)單的Python腳本, 這樣每次運(yùn)行前只需要改一次日期,就可以將所有SQL語(yǔ)句運(yùn)行一遍, 大大提高工作效率。

1. 首先, 用Python連接數(shù)據(jù)庫(kù)

對(duì)于數(shù)據(jù)庫(kù)的ip地址,用戶名,密碼等, 如果不清楚,或數(shù)據(jù)庫(kù)連接不上, 需要和開(kāi)發(fā)人員對(duì)接

from pyhive import hive 

import time

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

cursor = conn.cursor()

2. 設(shè)置開(kāi)始和結(jié)束時(shí)間

這樣只要sql語(yǔ)句不變, 我們跑sql時(shí), 只需要改日期即可。

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

3. 用Python中的format函數(shù)將日期傳入{}中

  • python中寫(xiě)sql腳本時(shí), 需要用\來(lái)進(jìn)行換行符的轉(zhuǎn)換, \后面不能有空格。

  • 日期用兩個(gè){}來(lái)代替, 用format函數(shù)將開(kāi)始日期與結(jié)束日期傳入

# 提取積分類uv,pv數(shù)據(jù)

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 "服務(wù)-查詢-積分信息%" \
    or \
    btn_home = "積分-扇形左" \
    ) \
limit 1000'.format(startdate,enddate)

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



我們可以按照這個(gè)格式寫(xiě)工作中需要運(yùn)行的多個(gè)SQL語(yǔ)句。 這樣, 當(dāng)腳本運(yùn)行的時(shí)候, 我們可以騰出時(shí)間來(lái)去干其他工作, 等過(guò)一段時(shí)間,所有的SQL語(yǔ)句都跑完了, 我們?cè)龠M(jìn)行統(tǒng)一的整理。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容