使用SageMaker生命周期配置执行Jupyter Notebook遇数据库操作错误
解决方案:在SQLAlchemy连接中设置hot_standby_feedback=on
针对你遇到的PostgreSQL查询错误,只需在SQLAlchemy创建数据库连接时添加hot_standby_feedback=on参数即可,有两种实现方式:
方式1:在连接URL中直接附加参数
修改你的数据库连接URL,在末尾添加?options=-c%20hot_standby_feedback=on(注意URL编码的空格%20):
from sqlalchemy import create_engine # 替换为你的实际连接信息 db_url = "postgresql://username:password@db-host:5432/db-name?options=-c%20hot_standby_feedback=on" engine = create_engine(db_url)
方式2:通过connect_args参数指定(推荐)
使用SQLAlchemy的connect_args参数直接传递PostgreSQL配置选项,无需处理URL编码:
from sqlalchemy import create_engine db_url = "postgresql://username:password@db-host:5432/db-name" engine = create_engine( db_url, connect_args={ "options": "-c hot_standby_feedback=on" } )
补充说明
hot_standby_feedback参数仅在PostgreSQL备库的hot_standby模式下生效,主库设置该参数不会产生副作用- 该参数的作用是让备库向主库反馈当前正在执行的查询信息,避免主库清理备库仍在使用的数据,从而解决查询过程中出现的事务状态访问类错误
内容的提问来源于stack exchange,提问作者Felix Ayton
相关产品推荐
相关产品推荐

