你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure 中选择流处理技术

本文对 Azure 中用于实时流处理的各种技术选择进行了比较。

实时流处理使用来自队列或基于文件存储的消息,处理消息,并将结果转发到另一个消息队列、文件存储或数据库。 处理可能包括对消息进行查询、筛选和聚合。 流处理引擎必须能够使用无限的数据流,以最低延迟生成结果。 有关详细信息,请参阅实时处理

选择用于实时处理的技术时有哪些选项?

在 Azure 中,下列所有数据存储都将满足支持实时处理的核心要求:

关键选择条件

对于实时处理方案,通过回答以下问题开始选择适合需求的合适服务:

  • 希望使用声明性方式还是命令性方式来创作流处理逻辑?

  • 是否需要对时间处理或窗口化的内置支持?

  • 数据是否会以 Avro、JSON 或 CSV 之外的格式到达? 如果是,请考虑使用自定义代码支持任何格式的选项。

  • 是否需要将处理能力扩展为超出 1 GBps? 如果是,请考虑通过群集大小进行缩放的选项。

功能矩阵

以下各表汇总了功能上的关键差异。

常规功能

功能 Azure 流分析 基于 Spark Streaming 的 HDInsight Azure Databricks 中的 Apache Spark Azure Functions Azure 应用服务 WebJobs
可编程性 SQL、JavaScript C#/F#、Java、Python、Scala C#/F#、Java、Python、R、Scala C#、F#、Java、Node.js、Python C#、Java、Node.js、PHP、Python
编程范例 声明性 混合使用声明性和命令性方式 混合使用声明性和命令性方式 命令性 命令性
定价模型 流式处理单位 每分钟节点成本 Databricks 单元 按函数执行和资源消耗 按应用服务计划小时

集成功能

功能 Azure 流分析 基于 Spark Streaming 的 HDInsight Azure Databricks 中的 Apache Spark Azure Functions Azure 应用服务 WebJobs
输入 Azure 事件中心、Azure IoT 中心和 Azure Blob 存储/Data Lake Storage Gen2 事件中心、IoT 中心、Kafka、HDFS、存储 Blob、Azure Data Lake Store 事件中心、IoT 中心、Kafka、HDFS、存储 Blob、Azure Data Lake Store 支持的绑定 服务总线、存储队列、存储 Blob、事件中心、WebHook、Azure Cosmos DB、文件
接收器 Azure Data Lake Storage Gen 1、Azure 数据资源管理器、Azure Database for PostgreSQL、Azure SQL Database、Azure Synapse Analytics、Blob 存储和 Azure Data Lake Gen 2、Azure 事件中心、Power BI、Azure 表存储、Azure 服务总线队列、Azure 服务总线主题、Azure Cosmos DB、Azure Functions HDFS、Kafka、存储 Blob、Azure Data Lake Store、Azure Cosmos DB HDFS、Kafka、存储 Blob、Azure Data Lake Store、Azure Cosmos DB 支持的绑定 服务总线、存储队列、存储 Blob、事件中心、WebHook、Azure Cosmos DB、文件

处理功能

功能 Azure 流分析 基于 Spark Streaming 的 HDInsight Azure Databricks 中的 Apache Spark Azure Functions Azure 应用服务 WebJobs
内置临时/窗口化支持
输入数据格式 Avro、JSON 或 CSV、UTF-8 编码 使用自定义代码的任何格式 使用自定义代码的任何格式(使用自定义代码的任何格式) 使用自定义代码的任何格式
可伸缩性 查询分区 按群集大小界定 按 Databricks 群集规模配置界定 最多 200 个并行的函数应用实例处理 按应用服务计划容量界定
支持延迟到达和乱序事件处理

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

后续步骤