这两天接到一客户的需求为接入数据源,同时当设置的条件达到时进行提醒,并记录所有提醒时间节点。
条件中有一个关键点:不是即时数据之间的比较,而是即时数据与刚入库的数据之间的比较,满足条件时和不满足条件的情况全部要记录标注出来。
了解足球数据变化之快的会知道,数据源接收入库时,几十场乃至上百场比赛数据、累计几千家公司的数据同步更新入库,此时再读取过往入库数据与即时数据进行比较,速度肯定不行甚至宕机。为此,我采用数据表的形式来处理即时数据的前后变化,在表中进行比较判断,再决定入库字段,这样速度提升几千倍是有的,问题得到完美解决。
information = pd.DataFrame(columns=['X1','Y1','Z1','X2','Y2','Z2','conditon_parameter']) #构造表,需要入库的参数分为前后两类
if KKK not in information.index: #最开始数据填表
information.at[index, 'X1'] = x
information.at[index, 'Y1'] = y
information.at[index, 'Z1'] = z
information.at[index, 'X2'] = x
information.at[index, 'Y2'] = y
information.at[index, 'Z2'] = z
do
elif condition_1(x,y,z): #表内比较并入库
information.at[index, 'X1'] = information.at[index, 'X2']
information.at[index, 'Y1'] = information.at[index, 'Y2']
information.at[index, 'Z1'] = information.at[index, 'Z2']
information.at[index, 'X2'] = x
information.at[index, 'Y2'] = y
information.at[index, 'Z2'] = z
if condition1:
if conditon2:
do
elif conditon3:
do
else:
do
update1= "UPDATE XXX=%s where ZZZ "
cur.execute(update1)
dbconn.commit()
|