0

我已将我的数据库存储在雪花服务器中并使用https://pypi.org/project/snowflake-connector-python/我正在访问数据库并从烧瓶服务器执行数据库查询,如下所示:

ctx = snowflake.connector.connect(
user='username',
password='pass',
account='account',
client_session_keep_alive=True
)
cs = ctx.cursor()

try:
    cs.execute("SELECT current_version()")
    one_row = cs.fetchone()
    print("Successfully connected to snowflake version: {}".format(one_row[0]))
    cs.close()
except Exception as e:
    print("Snowflake connection error: {}".format(e))
    cs.close()

我已将雪花连接会话定义为全局ctx变量,可从任何烧瓶 api 函数访问。

启动烧瓶服务器后,一切正常,但如果连续几个小时没有进行 api 调用,则会抛出错误 'snowflake.connector.errors.ProgrammingError: 390114 (08001): Authentication token has expired。用户必须再次验证icate。

如您所见,我在雪花连接 api 中保留了“client_session_keep_alive=True”参数以保持会话处于活动状态,但仍然以某种方式失败。我探索了这个问题,但没有得到任何确凿的信息。所以我想知道如何使数据库连接会话保持活动状态,还是必须为每个查询创建新的连接会话?

任何建议都会非常有帮助。

4

0 回答 0