如何使用 .Net 库管理对 Snowflake 的长时间运行过程调用
Posted
技术标签:
【中文标题】如何使用 .Net 库管理对 Snowflake 的长时间运行过程调用【英文标题】:How to manage a long running procedure call to Snowflake using .Net Library 【发布时间】:2021-08-30 14:01:48 【问题描述】:我打算编写一个存储过程,我预计它需要很长时间才能运行。如果我使用.Net库,它似乎会在内部发出重复的HttpClient请求,直到它发现过程调用完成。
与其让 Command.Execute 方法保持等待结果,有没有办法在 Command.Execute 没有快速完成时终止它,然后稍后再用 Snowflake 检查该过程是否已完成?
如果我在 Command.Execute 完成之前删除它,Cloud Snowflake 会继续执行该过程吗?如果是这种情况,我可以编写程序以将标志写入表以指示它已完成,然后我可以定期 ping 该表以获取已完成标志。
有没有更好的方法来解决这个问题?我是不是想多了,因为没有过程调用应该超过几秒钟?我是 Snowflake 的新手,只是想了解一下。谢谢。
【问题讨论】:
【参考方案1】:我知道 Snowflake Python Connector API,我可以在其中执行游标对象的 execute_async() 方法;此异步调用提交异步调用的查询/过程执行;我坚信.Net也必须有类似的方法
只需检查 Python Snowflake 连接器 [1]:https://docs.snowflake.com/en/user-guide/python-connector-example.html#label-python-connector-asynchronous-query-examples
【讨论】:
这个 python api 看起来正是我想要的,但我没有找到 .Net 等价物。以上是关于如何使用 .Net 库管理对 Snowflake 的长时间运行过程调用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 C# 为 Snowflake 编写 MS 单元测试