Azure 流分析作业对小数据来说很昂贵?

Posted

技术标签:

【中文标题】Azure 流分析作业对小数据来说很昂贵?【英文标题】:Azure Stream Analytics job expensive for small data? 【发布时间】:2019-07-30 10:00:37 【问题描述】:

为了将传感器数据从 IoT 设备写入云中的 SQL 数据库,我使用了 Azure 流分析作业。 SA 作业具有 IoT 中心输入和 SQL 数据库输出。查询很简单;它只是通过发送所有数据)。 根据 MS 价格计算器,最便宜的方式(在西欧)是每月 75 欧元左右(见屏幕截图)。

实际上,通过集线器每分钟仅发送 1 条消息,并且每月的价格是固定的(无论消息量如何)。我对如此微不足道的小数据任务的代价感到惊讶。对于如此低的容量需求,是否有更便宜的替代方案?也许是 Azure 函数?

【问题讨论】:

如果您不需要任何有状态的处理,例如窗口化,对于您的数据量,一个简单的 Azure Function in 消费计划确实应该更便宜。根据 Functions 的定价计算器:“前 400,000 GB/s 的执行和 1,000,000 的执行是免费的。” 或者,如果您不需要近实时,您还可以使用 IoT Hub 的存档功能将原始数据发送到 blob 存储。从那里有一个数据工厂作业每小时提取一次并将其写入 SQL DB。不过不确定,如果那比函数便宜。对于您的数据量,我可能会使用函数。 【参考方案1】:

如果您不实时处理数据,则不需要 SA,您可以使用事件中心来获取传感器数据并将其转发。有多个选项可将数据从事件中心移动到 SQL。正如您在问题中提到的,您可以使用 Azure 函数,或者如果您想要无代码解决方案,您可以使用逻辑应用程序。

https://docs.microsoft.com/en-us/azure/connectors/connectors-create-api-azure-event-hubs

https://docs.microsoft.com/en-us/azure/connectors/connectors-create-api-sqlazure

【讨论】:

感谢您的回答。数据需要大约每小时处理一次。但问题仍然存在,如何将其转发到数据库?【参考方案2】:

除了 Ken 的回答之外,当遥测数据每 720 秒(例如最大批处理频率)由 Azure IoT 中心存储在 blob 存储中时,“冷路径”可能是您的解决方案。

使用 blob 存储上的 Azure 事件网格,当我们可以处理启动此批次(或一小时内的一组批次)的流式处理过程时,它将触发 EventGridTrigger 订阅者。此批处理完成后,可以停止 ASA 作业。 请注意,ASA 作业是根据活动处理时间(即开始/停止之间的时间)计费的,您使用 ASA 作业的成本可以显着降低。

【讨论】:

你有一个例子来说明 Azure Event Grind 和 EventGridTrigger 的用法吗?

以上是关于Azure 流分析作业对小数据来说很昂贵?的主要内容,如果未能解决你的问题,请参考以下文章

重新启动 Azure 流分析作业而不丢失数据

错误代码:从 Azure 流分析作业中采样数据时出现 BadArgument 错误消息

Azure 流分析作业在使用静态引用数据时不生成输出

将流分析作业中的输出数据流式传输到 Azure Synapse Analytics sql 池表?

有没有办法通过流分析作业将原始 JSON 数据传输到 Azure SQL 中?

Azure 流分析作业在输入格式错误 (JSON) 后被阻止