【问题标题】:What is the best way to execute long-running and high memory usage tasks on Azure?在 Azure 上执行长时间运行和高内存使用任务的最佳方式是什么?
【发布时间】:2021-06-23 11:06:54
【问题描述】:

我需要找到在 Azure 上执行长时间运行任务的最佳方法。 场景:

  1. 用户在 Web 应用(Azure 应用服务)上选择数据集和筛选器
  2. 根据我们创建 SQL 查询的要求
  3. 针对一个或多个 Azure SQL 数据库执行查询
  4. 正在以 .csv 格式导出数据并上传到 Azure Blob 存储

主要问题是某些 SQL 查询的执行可能会持续 2 多个小时,并且结果集可能有 100M+ 行。

我认为 Azure Functions(以及随后的 Durable Functions)不是一个选项,因为超时和内存使用情况。

【问题讨论】:

  • 您能详细解释一下您想要启用的端到端方案吗?为什么需要 CSV 文件?您使用什么大小的 SQL?导出所有 CSV 文件后会发生什么情况?等等
  • 您好,有问题的 Azure SQL 数据库是 GP:Gen5 16vCore 和 DTU S9。我们需要为用户提供一种方法来手动从多个数据库中选择数据,组合和过滤它们。导出完成后,用户下载 .csv 文件并将其导入他们的系统。将来,blob 拾取将是自动化的。
  • 听起来你应该在 SQL DB 上使用弹性查询或使用 SQL Server + 多个数据库。
  • 您可以设置 Kubernetes 集群并运行 Jobs。这也具有成本效益。

标签: azure azure-functions export azure-sql-database long-running-processes


【解决方案1】:

我相信 Azure Functions(以及随后的 Durable Functions) 由于超时和内存使用,不是一个选项。

超时限制仅在消费计划中。如果您想摆脱超时限制并想要更多内存,您可以使用高级计划或应用服务计划。并且由于 azure 函数可以横向扩展,所以可以将结果拆分为多个,然后输入 azure 函数。

此外,您还可以使用网络作业。

【讨论】:

  • 您好,谢谢您的回答。我调查得越多,这个工作负载似乎越来越不适合 Azure,至少从成本角度来看是这样。
  • @lijevosmetalo 您可以根据自己的预算考虑使用什么。这是cost calculation tool
猜你喜欢
  • 1970-01-01
  • 2015-12-04
  • 2010-09-19
  • 2017-08-24
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多