【问题标题】:Calling azure function to call a procedure in snowflake to load data causes timeout in consumption plan, is there another way to achieve this?调用 azure 函数调用雪花中的过程加载数据导致消费计划超时,还有其他方法可以实现吗?
【发布时间】:2020-02-21 07:04:27
【问题描述】:

我想在雪花仓库中触发一个过程以从 azure blob 存储加载文件,因为我已将雪花连接器实现为 azure 函数,并且它在消耗计划(动态)上运行。但消费计划的默认超时时间为 5 分钟,最大超时时间为 10 分钟。但是我的数据大约是 50 GB,中等大小的雪花簇大约需要 20 分钟。那么有没有其他方法可以实现呢?

【问题讨论】:

    标签: stored-procedures triggers azure-functions snowflake-cloud-data-platform


    【解决方案1】:

    如果你想摆脱这个限制,你有多种解决方案。

    首先,您可以设计一个时间触发器来在函数超时之前唤醒它。这个时间触发器是周期性的,它的周期应该小于你的函数的超时时间。

    第二,因为超时限制来自于服务计划,你可以改变你的服务计划来完成你的想法。

    在无服务器消费计划中,有效范围为 1 秒到 10 分钟,默认值为 5 分钟。

    在高级计划中,有效范围为 1 秒到 60 分钟,默认值为 30 分钟。

    在专用(应用服务)计划中,没有总体限制,默认值为 30 分钟。值 -1 表示无限执行,但建议保持固定的上限。

    相关文档:https://docs.microsoft.com/en-us/azure/azure-functions/functions-host-json#functiontimeout

    第三,使用持久的功能。在消费计划下,普通的开箱即用功能最长可运行 10 分钟。但如果你使用持久函数,则根本没有这样的限制。它还引入了对有状态执行的支持,这意味着对同一函数的后续调用可以共享局部变量和静态成员。这是常规开箱即用功能模型的扩展,它需要一些额外的样板代码才能使所有功能按预期工作。

    更多关于持久函数的细节:https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-overview?tabs=csharp

    【讨论】:

    • 是的,我很感谢您的回答,但其他计划的情况并非无服务器。所以我想要一个有效的方法。除了没有短超时且高效的 azure 函数之外的任何其他方式,使用 azure 批处理(ADF 中的自定义活动)怎么样?
    • @BilalShafqat 是的,您可以使用 ADF v2。 ADF v2 中自定义活动的默认超时为 7 天。所以它不是短暂的超时。:)
    猜你喜欢
    • 1970-01-01
    • 2021-03-13
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多