从mongodb中拉取当天告警信息,并写入到mysql中

from pymongo import MongoClient
from datetime import datetime, timedelta
import time
import pymysql
client = MongoClient('mongodb://aiops:bizseer_aiops_2020@10.0.70.252:27017')
database = client.aiops_standard
collection = database.anomaly.event

t = datetime.now()
t2=(t-timedelta(hours=16)).strftime("%Y-%m-%d %H:%M:%S")
ts2=time.mktime(time.strptime(t2, '%Y-%m-%d %H:%M:%S'))
hourtime = int(str(ts2*1000).split(".")[0])
rows_select = collection.find({'finish': False,"time": {"gt": hourtime}}).sort("time",-1).limit(20) rows_select_False = collection.find({'finish': False,"time": {"gt": hourtime}})
rows_select_True = collection.find({'finish': True,"time": {"$gt": hourtime}})
i=0
for row in rows_select_False:
i = i + 1
print(i)
j=0
for row in rows_select_True:
j = j + 1
print(j)
description = "当前告警:"
for row in rows_select:
#print(row['description'])
description = description + row['description'] + ' '
print(description)

连接MySQL数据库(注意:charset参数是utf8而不是utf-8)

conn = pymysql.connect(host='10.0.70.4', user='john_test', password='Aiops@2021', db='test_mysql', charset='utf8')

创建游标对象

cursor = conn.cursor()

sql = " update john_test set alert = '%s',false_count = %s, true_count = %s where id = 1;" %(description,i,j)

sql = " update john_test set alert = '%s',false_count = %s, true_count = %s where id = 1;" %(description,i,j)
print(sql)
cursor.execute(sql) #执行SQL语句
conn.commit() # 提交数据
cursor.close() # 关闭游标
conn.close() # 关闭数据库

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容