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

Snowflake cloud data platform Snowflake中的异步游标执行,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,(代表雪花用户提交) 在Snowflake上执行查询时,我需要它的查询id。因此,我使用以下代码段: cursor.execute(query, _no_results=True) query_id = cursor.sfqid cursor.query_result(query_id) 此代码段对于运行中的小查询工作良好。但对于执行时间超过40-45秒的查询,查询结果函数会失败,出现keyrorm u'rowtype' 堆栈跟踪: File "snowflake/connector/c

(代表雪花用户提交)


在Snowflake上执行查询时,我需要它的查询id。因此,我使用以下代码段:

cursor.execute(query, _no_results=True)

query_id = cursor.sfqid

cursor.query_result(query_id)
此代码段对于运行中的小查询工作良好。但对于执行时间超过40-45秒的查询,查询结果函数会失败,出现
keyrorm 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'
为什么会出现这种错误?如何解决这个问题



有什么建议吗?谢谢

雪花Python连接器允许使用​cur.execute(sql,\u no\u results=True)​

这个​“火与遗忘”​ SQL执行风格允许父进程继续,而无需等待SQL命令完成(想想可能超时的长时间运行的SQL)

如果使用此方法,许多开发人员将编写捕获唯一雪花查询ID的代码(就像您在代码中所做的那样),然后使用该查询ID​“稍后再检查查询状态”​, 在某种循环过程中。当您返回以获取状态时,您可以使用result\u scan()函数从该查询id获取结果

我希望这有助于…Rich