【问题标题】:High cost on Azure Function webjobs storage for Event Hub checkpoints事件中心检查点的 Azure Function webjobs 存储成本高
【发布时间】:2020-07-01 23:33:42
【问题描述】:

我们希望使用 Azure 函数 (AF) 从事件中心 (EH) 提取数据(15k msg/min 和 35 Mb/min)并将其存储在 Azure Synapse(以前称为 Data Warehouse)中。对于 EH 输入,AF 使用存储帐户来存储每个 EH 分区(32 个分区)的最新检查点。由于某种原因,这种存储的成本远远超过了 AF 本身的成本。

cost analysis 一天的计量表表明,是读取、写入和其他操作的高计数导致了这些高成本。您还可以看到,存储成本比函数本身高出大约 40 倍。

有趣的是,我们已经成功地使用了类似的设置,其中 EH 作为 AF 的输入,其中存储成本与 AF 本身大致相同,尽管 EH 流式传输相同的数据(消息和数量)并且配置了 32 个分区。

This stack overflow question 似乎处理了同样的问题,但除了没有真正的解决方案,

“我相信创建一个新函数并将代码部署到该函数已经解决了问题。”

我们缺少什么?谢谢

【问题讨论】:

    标签: azure azure-functions azure-blob-storage


    【解决方案1】:

    我们遇到了同样的问题。

    • 使用通用 V1 存储帐户而不是 V2 或 blob 存储。对于一个客户,我们仅使用 V1 就将存储帐户成本从每月约 3000 欧元降至约 100 欧元。
    • 少做检查点。不要在每条消息后检查点。您可以通过增加 EventHub 触发器的设置 batchCheckpointFrequency 来控制它。唯一的缺点是您可能会重新处理几条消息,以防您的功能意外停机。

    【讨论】:

    • 谢谢,我要试试这个。 V1 存储会很快被弃用吗? V1这么便宜,还是原因还不清楚?
    • 我认为 V1 存储在未来 2 年内不会被弃用,但这只是我的猜测。鉴于您仍然可以创建许多经典的非 ARM 资源,它可能远不止于此。 V1 存储要便宜得多,尤其是对于像检查点这样的小事务。您可以查看azure.microsoft.com/en-us/pricing/calculator/?service=storage
    • 嘿,再次感谢您的输入。第一次测试确实证实了 v1 存储的成本大大降低。除了 Azure 函数执行的许多写入操作之外,在存储事件中心检查点时,我们在通过 AF 将实际数据写入 Blob 时也遇到了同样的问题。这应该是我们正在开发的数据平台的长期数据存储。但是我们现在对使用 storage v1 感觉并不好,因为它被标记为旧版。 Microsoft 如何引入存储 v2 并使写入操作的成本高出 100 倍?根据我们一天的数据,这是 3 美元对 300 美元/天
    • 不知道他们到底是怎么想的。您可以为您的数据评估 V2 冷层,但您需要存储大量数据才能真正节省成本。关于原始问题:我很高兴我的解决方案对您有所帮助。如果您通过单击复选标记将答案标记为已接受,我将不胜感激。这有助于将注意力集中在仍然没有答案的旧问题上。
    • 就我个人而言,我使用 V1,唯一的缺点是存储不断增长,因为我无法让它们自动删除(这在 V2 中很容易)。这意味着它会慢慢变得更贵,但也会慢一些。所以我所做的只是每隔几个月就将其丢弃,然后从头开始。
    猜你喜欢
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 2018-03-20
    • 2021-06-07
    • 1970-01-01
    • 2020-03-31
    • 2017-01-08
    • 1970-01-01
    相关资源
    最近更新 更多