如何在带有查询id的雪花Python中使用时间旅行?

问题描述 投票:0回答:1

根据这个答案,我尝试对雪花Python连接器使用相同的模式。这没有问题:

snowflake_cursor.execute("""
set q_id = last_query_id();""")
snowflake_cursor.execute(""" 
select max(scenario_id) from scenarios at(statement=>$q_id);""")

但是,我认为依赖雪花变量是短暂的,宁愿将其放入 python 变量中;至少,如果我想在执行查询并且雪花连接关闭后一天进行时间旅行,我需要某种方法将 query_id 传回执行:

snowflake_cursor.execute("""
select last_query_id();
""")
q_id = snowflake_cursor.fetchone()[0]
snowflake_cursor.execute("""
select max(scenario_id) from scenarios at(statement=>$%s);
""", q_id)

这会出现错误,

unexpected '$'
,并且我尝试在查询 id 字符串中传递的所有内容都失败了。

python string data-binding snowflake-cloud-data-platform
1个回答
0
投票

尝试使用

?
:1
进行绑定。这对我有用:

session.sql("select * from a_table at(statement=>:1);", (['01b2829a-0504-4f02-001e-2483024e7cda'])).collect()

https://docs.snowflake.com/en/developer-guide/python-connector/python-connector-example#qmark-or-numeric-binding

© www.soinside.com 2019 - 2024. All rights reserved.