我有一个python脚本,例如:
db = connection.get_engine(my_conn)
run_query(db, query1, LOGGER)
run_query(db, query2, LOGGER)
run_query(db, query3, LOGGER)
run_query(db, query4, LOGGER)
run_query(db, query5, LOGGER)
运行query4
时返回以下错误,但有时在上一个查询中返回相同的错误。
(psycopg2.errors.InternalError_) could not open relation with OID 3463635
get_engine
函数是:
config = json.load(open(FILE, "r"))
tangelo_bi_redshift_engine = create_engine(
"redshift+psycopg2://{0}:{1}@{2}:{3}/{4}".format(
config["usr"], config["pwd"], config["host"], config["prt"], config["db"], connect_timeout=60, **kwargs),
connect_args={'sslmode': 'prefer'})
return con
run_query
函数是:
conn = db.connect()
try:
conn.execute(query)
except Exception as e:
logger.error(str(e))
raise
finally:
conn.close()
return
最近我一直在更改代码,但与此无关。但是我接触了一些与Boto3
一起使用的功能。如您所见,其中任何一个都与该库有关。
此外,我在使用的SQL IDE中尝试了query4:
INSERT INTO schema.table (field)
SELECT field
FROM stg_table stg
LEFT JOIN dim_table dim
ON stg.id = dim.id
WHERE dim.id IS NULL;
它工作正常。因此该表存在,因此不可能是与意外删除表有关的错误。
有什么建议吗?