python连接impala获取数据并推送至企业微信机器人
安装依赖包
安装依赖包
pip install sasl
pip install thrift
pip install thrift-sasl
pip install impyla
数据库连接
导入基础包
#导入pandas模块
import pandas as pd
import numpy as np
import datetime as datetime
import time
import schedule
#导入impala模块
from impala.dbapi import connect
from impala.util import as_pandas
#导入机器人模块,必须要有
import requests
import json
连接数据库
impala_config = {'host':'********', 'port': *****, 'user': '*****', 'password': '*****'} #配置方案
conn_impala = connect(**impala_config).cursor(user='algo')
获取数据
写出sql语句获取数据
#查询语句
sql1='''
select
biz_date AS '日期',
city_name AS '城市',
from table
limit 10;
'''
conn_impala.execute(sql1)
data2 = as_pandas(conn_impala)
定义机器人信息发送函数
def post_file():
data = {'file': open(file,'rb')}
# 请求id_url(将文件上传微信临时平台),返回media_id
# id_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=xxx&type=file'
response = requests.post(url=id_url, files=data)
json_res = response.json()
media_id = json_res['media_id']
data = {"msgtype": "file",
"file": {"media_id": media_id}
}
result = requests.post(url=wx_url,json=data)
return(result)
填入企业微信机器人上传文件接口地址和发送消息接口地址
上传文件接口的参数key要改为自己机器人地址中的key,
type参数一般固定为file
#机器人地址,改成你自己的机器人
id_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=KEY&type=TYPE' # 上传文件接口地址
wx_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=******' # 发送消息接口地址
data2.to_csv('/Users/l*****/Desktop/未命名文件夹/data.csv')#数据结果落入本地,方便查看数据是否异常
file='/Users/l*****/Desktop/未命名文件夹/data.csv'
定义执行时间
schedule.every().day.at("15:45").do(post_file)
while True:
schedule.run_pending()
time.sleep(1)
最后看效果: