在 Azure 上选择实时分析和流式处理技术

Azure 上提供了用于实时分析和流式处理的多种服务。 本文中的信息可帮助你确定哪种技术最适合你的应用程序。

何时使用 Azure 流分析

Azure 流分析是 Azure 上提供的建议用于流分析的服务。 你可以将其用于多种方案,包括但不限于:

将 Azure 流分析作业添加到应用程序,是在 Azure 中使用熟悉的 SQL 语言启动和运行流分析的最快捷方法。 Azure 流分析是一个作业服务,因此你无需花费时间来管理群集,也无需担心出现停机,因为它在作业级别提供高达 99.9% 的服务级别协议 (SLA)。 还可以在作业级别进行计费,使创业成本降低(只需一个流单元),但流单元可缩放(最多可以购买 396 个)。 运行少量的流分析作业比运行并维护群集要经济高效得多。

Azure 流分析提供丰富的全新体验。 无需进行任何额外的设置,就能立即利用以下功能:

  • 内置时态运算符,例如开窗聚合、时态联接和时态分析函数。
  • 本机 Azure 输入输出适配器
  • 支持慢速变化的参考数据(也称为查找表),包括与地理围栏的地理空间参考数据相联接。
  • 集成的解决方案,例如异常情况检测
  • 同一查询中的多个时间窗口
  • 可按任意顺序编写多个时态运算符。
  • 从输入抵达事件中心到输出进入事件中心的端到端延迟不超过 100 毫秒(包括与事件中心之间的网络延迟),且能保持较高的吞吐量

何时使用其他技术

要使用除 JavaScript 以外的语言编写 UDF、UDA 和自定义反序列化程序

Azure 流分析支持在适用于云作业的 JavaScript 中以及适用于 IoT Edge 作业的 C# 中使用用户定义的函数 (UDF) 或用户定义的聚合 (UDA)。 还支持 C# 用户定义的反序列化程序。 若要在其他语言(例如 Java 或 Python)中实现反序列化程序、UDF 或 UDA,可以使用 Spark 结构化流。 还可以在自己的虚拟机上运行事件中心 EventProcessorHost,以执行任意流式处理。

解决方案位于多云环境或本地环境中

Azure 流分析是 Microsoft 的专属技术,只能在 Azure 上使用。 如果需要在云之间或本地位置之间移植解决方案,请考虑使用 Spark 结构化流或 Storm 等开源技术。

后续步骤