gpt4 book ai didi

snowflake-cloud-data-platform - Snowflake 中的异步游标执行

转载 作者:行者123 更新时间:2023-12-04 01:01:02 25 4
gpt4 key购买 nike

(代表 Snowflake 用户提交)


在 Snowflake 上执行查询时,我需要它的查询 ID。所以我使用以下代码片段:

cursor.execute(query, _no_results=True)

query_id = cursor.sfqid

cursor.query_result(query_id)

此代码片段适用于小型运行查询。但是对于执行时间超过 40-45 秒的查询,query_result 函数失败并返回 KeyError u'rowtype'

堆栈跟踪:

File "snowflake/connector/cursor.py", line 631, in query_result

self._init_result_and_meta(data, _use_ijson)

File "snowflake/connector/cursor.py", line 591, in _init_result_and_meta

for column in data[u'rowtype']:

KeyError: u'rowtype'

为什么会出现这个错误?如何解决这个问题?


有什么建议吗?谢谢!

最佳答案

Snowflake Python 连接器允许使用 cur.execute(sql, _no_results=True) 执行异步 SQL

这种“即发即弃”的 SQL 执行方式允许父进程继续执行而无需等待 SQL 命令完成(想想可能超时的长时间运行的 SQL)。

如果使用它,许多开发人员将编写代码来捕获唯一的 Snowflake 查询 ID(就像您在代码中的一样),然后使用该查询 ID 以某种方式“稍后检查查询状态”的循环过程。当您回来查看状态时,您可以使用 result_scan( ) 函数从该 query_id 获取结果。

https://docs.snowflake.net/manuals/sql-reference/functions/result_scan.html

希望对你有帮助...丰富

关于snowflake-cloud-data-platform - Snowflake 中的异步游标执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58346357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com