我想每天将数据从一个数据源填充到另一个数据源。所以,通过一点研究,我找到了“时间表”,所以我试了一下。然而,它没有按我预期的方式工作。因此,我想知道为什么,如果有任何解决办法来实现我的目标。你知道吗
下面是我在Pyhton3中的代码示例。你知道吗
import pandas as pd
from sqlalchemy import create_engine
import schedule
import time
postgre_engine = create_engine('postgresql+psycopg2://user1:pass1@srever_ip/db_name1')
mysql_engine = create_engine('mysql+pymysql://user2:pass2@server_ip2:port_no/db_name2')
def job():
# get data from mysql
query = ('SELECT * '
'FROM table1 '
'WHERE event_date_time > CURRENT_DATE - 1 '
'AND event_date_time < CURRENT_DATE '
)
df = pd.read_sql(query, mysql_engine)
# write back to postgres
postgre_table = 'table2'
df.to_sql(postgre_table, postgre_engine, if_exists='append', index=False)
schedule.every().day.at("07:30").do(job)
while True:
schedule.run_pending()
time.sleep(1)
我总是有NameError: name 'df' is not defined
。是否有其他方法可以使计划查询正常工作?你知道吗
假设您使用的是Unix系统,那么就可以使用cron。为当前用户使用添加新的cronjob
然后,在由环境变量
$EDITOR
确定的编辑器中,可以添加每天7:30执行的新行每次调用
job
函数并删除schedule
部分时,都必须调整脚本以执行该函数。你知道吗相关问题 更多 >
编程相关推荐