现在门店的所有销售数据,都存储在sybase数据库里的数据
而我的企业微信上的应用(部署在阿里云服务器上)要关联到这个数据库,有很多数据的互动嘛
现在用到的办法是,把sybase数据库上的数据同步到阿里云的RDS数据库上,然后阿里云的云服务器上的程序再去读取RDS数据库上的数据
阿里云服务器 → 阿里云RDS数据库 → sybase数据库
每2秒查询一次,如果有销售数据产生,就把这个变动同步到阿里云的mysql数据库
我现在是用python的pandas.read_sql读取sybase数据库里的数据,如果有新增的数据,就发送到阿里云上,做mysql的增删改减的操作
inv_table = pd.read_sql('SELECT * FROM p_inv', self.sybase_engine1, parse_dates='psl_date').apply(lambda x: x.astype(str).str.encode('cp850').str.decode('gbk'))
inv_table = inv_table[inv_table['piv_date'] == self.today.strftime('%Y-%m-%d')]
last_bill_num = inv_table['piv_bill_no'].values.tolist()[-1]
print(last_bill_num, bill_num)
if last_bill_num >= f'0{bill_num}':
cols = ','.join(inv_table.columns.values)
df = inv_table[inv_table['piv_bill_no'] == f'0{bill_num}']
print(df)
if not df.empty:
inv_sql = f"insert into p_inv({cols}) values(%s{' ,%s' * (len(inv_table.columns) - 1)})"
cursor.execute(inv_sql, df.values.tolist()[0])
self.ali_sales_conn.commit()
self.update_p_sale_store(cursor, f'0{bill_num}')
self.ali_sales_conn.commit()
这个我感觉太复杂了,有没有更简单一点的办法呢,提供给我一个思路就行