描述
需求:获取ETL报错任务信息,如果没有返回成功。
环境:python 3.7 +jupyter
思路:conn_mysql()连接数据库,get_etl_info()获取当日执行结果。
脚本
import pymysql as MySQLdb
import datetime
def conn_mysql():
# 连接信息:IP,用户名,密码,数据库,编码,端口号
db = MySQLdb.connect('192.168.***.***', 'usr01', 'usr01A@', 'db01', charset='utf8',port = 23300);
return db;
def get_etl_info():
now = str(datetime.datetime.now().strftime('%Y%m%d'))
sql ="select task_name,START_TIME from db01.task_log where DATE_FORMAT(START_TIME,\'%%Y%%m%%d\') = %s AND status = \'4\'"
db = conn_mysql()
cursor = db.cursor()
# 执行SQL语句,后面加参数
cursor.execute(sql,now)
# 获取所有记录列表
results = cursor.fetchall()
# 获取是否有错误记录
if len(results) > 0 :
for row in results:
taskname = row[0]
tasktime = str(row[1])
# 失败任务输出
result = taskname+",执行失败时间:"+tasktime
else:
# 任务执行成功
result = "The task was successfully executed"
cursor.close()
return result
get_etl_info()
相关文章:【python】自动化办公之excel入GP库实战详解(xlwings+psycopg2)
【python】禅道二次开发获取任务信息