我们正在使用python雪花连接器来执行查询。我们最近进行了代码更改,以封装少量查询以在单个事务中执行。作为测试的一部分,我们希望确保所有查询都在单个事务中执行。我们已经在“历史记录”标签下进行了检查。我们只看到查询ID,SQL文本,会话ID和其他非事务性详细信息。
有什么方法可以知道在事务下执行的查询列表吗?谢谢!
答案 0 :(得分:1)
如果使用的是python连接器,则可以利用query_tag在会话中“标记”交易。您只需要在交易开始和结束时设置值即可。这样一来,您就可以在query_history中查询特定的query_tag,或者通过组语句来报告持续时间或其他属性。
答案 1 :(得分:1)
您应该只确保查询在同一会话中运行,并通过在第一个查询中发出begin
语句来启动事务。
完成后,您可以运行select current_transaction();
并将其打印到python脚本的开头和结尾处的屏幕上,以调试检查事务ID是否相同。
或者,您应该能够使用Snowflake文档中this example中的python上下文管理器来管理事务。只要确保您设置了连接参数autocommit = False
答案 2 :(得分:0)
没有任何东西可以提供交易信息。此时,最好选择自己记录信息。