2. Azure实时数据平台核心组件

Azure 实时数据平台并不是单一产品,而是一条由“接入—处理—服务—分析”构成的组合链路。理解每个组件的定位,比记住产品名称更重要:Event Hubs 负责把海量事件可靠地接进来;Stream Analytics 负责低门槛的持续 SQL 计算;Functions 负责事件驱动的轻量逻辑与外部系统联动;Databricks 负责复杂流处理、机器学习与湖仓一体计算;Synapse 负责把实时结果与历史数据统一到分析仓库;Data Explorer(Azure Data Explorer,ADX)负责高吞吐、低延迟的日志与遥测交互式查询。选型的核心不是“哪个更强”,而是“这段负载应该放在链路的哪一层”。

一、先看数据链路,再看组件边界

一条典型的实时链路可以抽象为:生产者把事件写入 Event Hubs;Stream Analytics 或 Databricks 从 Event Hubs 消费并计算;计算结果可以写入 Synapse、Data Explorer、Blob Storage 或直接调用 Functions;Functions 也可以作为 Event Hubs 的消费者,处理告警、补偿、写回等轻量动作。下图给出各组件在链路中的位置与主要数据流向,便于在选型时先判断“当前问题属于哪一段”。

Azure 实时数据平台组件定位与数据流 事件生产者 App / IoT / 日志代理 Event Hubs 分区 / 吞吐单元 / 保留 事件接入缓冲层 Stream Analytics 持续 SQL / 窗口 / 低门槛 Azure Functions 事件驱动 / 轻量联动 Databricks Spark 结构化流 / ML / 湖仓 Azure Data Explorer 遥测 / 日志 / 交互式查询 Synapse Analytics 实时 + 历史统一分析 下游消费 Power BI / API / 告警 Databricks 结果可回写 Event Hubs / 存储 选型主线:接入看 Event Hubs;简单持续计算看 Stream Analytics;轻量联动看 Functions;复杂流与 ML 看 Databricks;统一分析看 Synapse;高吞吐遥测查询看 Data Explorer。 图中箭头表示主要数据流向,虚线表示可选回写路径

二、各组件定位与关键参数

Event Hubs 是实时链路的入口。它按分区(Partition)组织事件,分区数决定并行消费上限;吞吐单元(Throughput Unit,TU)或处理单元决定入口吞吐能力。事件默认保留 1 天,可配置到 7 天甚至更久,用于重放和补偿。选型时先估算峰值事件速率与单事件大小,再决定分区数和 TU。例如,假设峰值 2 万事件/秒、单事件 1 KB,则入口吞吐约 20 MB/s,需要结合 TU 的入口能力预留余量,而不是只按平均值配置。

Stream Analytics 适合“持续 SQL”场景:用类似 T-SQL 的语法对 Event Hubs 输入做窗口聚合、过滤、连接和模式识别。它按流单元(Streaming Unit,SU)计费,SU 决定可用的 CPU 与内存。典型用法是 5 分钟滚动窗口统计每台设备的平均温度,并把结果写入 Synapse 或 Data Explorer。它的优势是开发快、运维轻;局限是复杂状态计算、机器学习推理和自定义算子能力有限。

Azure Functions 是事件驱动的轻量计算单元。它可以直接由 Event Hubs 触发,适合做告警发送、写回数据库、调用外部 API、格式转换等“短平快”动作。选型时要关注消费组、批处理大小、并发控制和超时时间。若单次处理超过分钟级,或需要大量内存与复杂依赖,应转向 Databricks 或容器化服务。

Databricks 基于 Spark 结构化流,适合复杂流处理、机器学习推理和湖仓一体。它能处理有状态计算、流与维表连接、Delta Lake 写入,并支持批流统一。代价是集群管理与调优成本更高。典型场景是:从 Event Hubs 读取事件,做会话窗口、异常检测、特征计算,再写入 Delta 表供 Synapse 或 Power BI 使用。

Synapse Analytics 是统一分析服务,负责把实时结果与历史数据放在同一分析平面。它可以用专用 SQL 池承载高并发查询,也可以用 Spark 池做数据工程。实时链路通常把 Stream Analytics 或 Databricks 的结果写入 Synapse,再由 Power BI 做近实时看板。选型时要区分“实时计算”和“实时查询”:Synapse 更偏后者与统一分析。

Azure Data Explorer 面向高吞吐、低延迟的遥测与日志查询。它擅长海量结构化、半结构化数据的交互式分析,支持 KQL 查询和近实时摄入。若场景是设备遥测、应用日志、安全事件,且查询模式以探索、聚合、时间序列为主,Data Explorer 往往比 Synapse 更合适。

三、选型判断表

判断维度优先选择说明
海量事件接入与缓冲Event Hubs分区、保留、吞吐单元决定接入能力
简单持续 SQL 计算Stream Analytics窗口聚合、过滤、连接,开发快
事件触发轻量动作Functions告警、写回、调用外部 API
复杂流处理与 MLDatabricks有状态计算、Delta Lake、批流统一
实时与历史统一分析Synapse专用 SQL 池、Spark 池、Power BI
高吞吐遥测日志查询Data ExplorerKQL、近实时摄入、交互式探索
选型时先问三个问题:数据是“接入、计算、查询”中的哪一段?延迟要求是秒级、分钟级还是小时级?团队更擅长 SQL、Spark 还是 KQL?答案会直接缩小组件范围。

四、一个可参考的组合示例

假设要构建“工厂设备温度监控”:设备每 5 秒上报一次温度,峰值 1 万事件/秒。接入层用 Event Hubs,分区数设为 8,保留 3 天;计算层用 Stream Analytics 做 1 分钟滚动平均,超过阈值时输出到 Functions 发送告警;同时把原始事件写入 Data Explorer 供工程师用 KQL 排查;再把分钟级聚合结果写入 Synapse,供 Power BI 做产线看板。若后续要加入异常检测模型,则把 Databricks 接入同一 Event Hubs,读取原始事件做特征计算与推理,结果写回 Delta 表。这个组合没有“唯一正确”,但每一层都对应了明确的负载特征。

不要把 Synapse 当作实时计算引擎,也不要用 Functions 承担长时间、大内存的流处理任务。组件边界清晰,链路才稳定。

总结来看,Event Hubs 解决“接得住”,Stream Analytics 解决“算得快”,Functions 解决“连得动”,Databricks 解决“算得深”,Synapse 解决“看得全”,Data Explorer 解决“查得细”。选型时按数据流位置、延迟要求、计算复杂度和团队技能四个维度判断,就能在 Azure 实时数据平台中做出合理组合。