跳到正文
RadarAI· Databricks:Blog(RSS)·· 3 小时前AI 评分44

Databricks 宣布 Spark Declarative Pipelines 实时模式正式可用

AI 导读

Databricks 宣布 Spark Declarative Pipelines(SDP)的实时模式(RTM)正式可用,可在毫秒级端到端延迟下处理欺诈检测、实时个性化和实时特征计算等低延迟场景。

正文 · AI 翻译

Databricks:Blog·2026-10-30 06:30· 2 小时前AI 评分51

宣布 Databricks 上 Spark Declarative Pipelines 的实时模式正式可用

AI 导读

Databricks 宣布 Spark Declarative Pipelines(SDP)的实时模式(RTM)正式可用,在毫秒级端到端延迟下支持欺诈检测、实时个性化和实时特征计算等低延迟场景。

正文 · 原文

我们去年推出了实时模式(RTM),使客户能够构建低延迟的运营用例。这是一项颠覆性变革,因为它让客户能够以毫秒级处理流式数据,速度比传统微批架构快达 100 倍。此外,他们不再需要在 Spark 之外维护像 Flink 这样的独立专用引擎,从而消除了重复的代码库、碎片化的治理模型和运维开销。

今天,我们宣布Spark Declarative Pipelines(SDP)中的 RTM现已正式可用。SDP 已成为在 Databricks 上构建流式和 ETL 管道的标准方式,可自动处理依赖解析、增量处理、编排、故障恢复和数据质量强制。借助 RTM,客户可以构建运营型低延迟管道,同时保留 SDP 的所有这些优势。无论是用于欺诈评分、实时告警,还是将最新特征推送到运营存储,你现在都可以在这些用例中使用 SDP。

什么是实时模式(RTM)?

RTM 是 Spark Structured Streaming 引擎的演进版本,可实现毫秒级的端到端延迟。它通过持续流式传输数据、同时运行所有查询阶段,并在数据产生后立即在阶段之间传递数据来实现这一点。如需深入了解完整架构,请阅读博客“突破微批屏障:Apache Spark 实时模式的架构”。

RTM 可以支持任何受益于在毫秒内将数据转化为决策的工作负载。一些示例用例包括欺诈检测、实时个性化、实时推荐系统和实时特征计算。我们在执行特征计算的实际客户工作负载上对 RTM 与 Apache Flink 进行了基准测试,RTM 比 Flink 等专用引擎快达 92%。以下是基准测试结果。有关所引用数据集和查询的更多信息,请参阅此GitHub 仓库。

Apache Spark Real-Time Mode vs. Apache Flink

为什么在 Spark Declarative Pipelines 上使用 RTM

客户越来越多地默认使用 SDP 来处理其 ETL 工作负载。借助 RTM,SDP 现在支持所有流式工作负载,包括运营型低延迟流式处理,使客户能够在所有管道中使用单一框架。一个框架意味着一个可观测性栈、一种计费模式,并且不会在不同 API 之间产生碎片化。

SDP 无服务器更进一步。无需选择计算资源,也无需调整集群规模。你无需任何复杂的基础设施调优即可获得亚秒级延迟,同时只需为查询使用的核心付费。 RTM 流程还可获得 SDP 功能,例如无版本升级和低停机维护,从而减少运维工作和升级带来的中断。

SDP 上的 RTM 能立即产生效果的一个用例是实时特征计算。用于欺诈检测或个性化的 ML 模型依赖新鲜信号(例如用户在过去 10 分钟内的总交易金额)来做出准确预测。计算这些滚动窗口聚合结果并在毫秒内将其写入在线存储,正是 SDP 上的 RTM 所填补的空白。Databricks Feature Store 采用这一架构,实现了从 Kafka 到在线特征存储的端到端 p99 延迟 200ms。

开始使用 SDP 上的 RTM

第 1 步:配置管道

实时模式要求管道模式为 continuous,并将 spark.databricks.streaming.realTimeMode.enabled 设置为 true 接管。

第 2 步:定义实时更新流

实时模式需要更新流。使用 dp.create_sink() 定义输出目标,然后使用 @dp.update_flow 装饰器,将 pipelines.trigger 设置为 "RealTime",并将 target 指向接收端。

有关支持的源和接收端,请参阅文档。

将特征写入任意自定义接收端

欺诈检测或实时个性化等用例不仅要求实时计算特征,还要求将特征写入可查询的低延迟存储。欺诈模型需要在交易清算前获取客户的最新交易,而个性化引擎需要读取用户刚刚浏览的内容。

如今,你可以使用 ForEach 接收端从 SDP 写入任意自定义接收端,例如 Lakebase、Redis 或任何其他 OLTP 存储。定义写入器,将其注册为 foreach_sink,并将其连接到 update_flow。

特征在生成后几毫秒内即写入你的运营存储,中间无需离线到在线的同步。应用程序和模型可以以超低延迟查询这些特征。 
无服务器上的 RTM 下一步是什么?

  • 以更低成本运行 RTM 管道:将多个 RTM 流打包到单个管道中,而不是让每个查询都启动自己的资源。系统还会根据工作负载自动调整源分区和 shuffle 分区,因此用户无需手动调整规模。
  • 扩展的接收端支持:为 SDP 提供原生 Lakebase 接收端,内置批处理、自动重试和 UC 管理的身份验证。

结论

RTM 将 Spark Declarative Pipelines 扩展到一类新的工作负载——对延迟敏感、需要对流式数据立即响应的运营型应用。通过为你团队已在使用的 SDP API 带来亚秒级延迟,它消除了为最时间关键的管道运行单独框架或引擎的需要。无论你是在构建欺诈检测管道、个性化引擎还是 ML 特征计算系统,实时模式都能以 SDP 的简洁性提供你的应用所需的延迟。

Spark Declarative Pipelines 上的实时模式现已正式可用。

技术资源

查看以下资源以开始使用 SDP 上的 RTM:

常见问题

Spark Declarative Pipelines 中的实时模式 (RTM) 是什么?

实时模式(RTM)让 Spark 声明式管道(SDP)能够以毫秒级的端到端延迟处理流式数据。它持续流式传输数据,同时运行所有查询阶段,并在数据产生后立即在阶段之间传递数据。实时管道受益于 SDP 的编排和自动故障恢复。

Spark 声明式管道中是否提供实时模式?

是。Spark 声明式管道上的实时模式现已正式可用。它将 Spark Structured Streaming 中已有的实时模式引入 SDP 管道。

如何在管道中开启实时模式?

将管道设置为 continuous 模式,并将 spark.databricks.streaming.realTimeMode.enabled 设置为 true。然后定义一个更新流,将 pipelines.trigger 设置为 "RealTime",并指定一个指向接收器的目标。

实时管道能否写入 Lakebase 或其他 OLTP 存储?

可以。定义一个 ForEach 接收器,其写入器实现 open、process 和 close,然后将实时流指向它。这适用于 Lakebase、Redis 或任何其他 OLTP 存储。

Spark 声明式管道中的实时模式面向哪些用例?

实时模式专为在毫秒内将流式数据转化为决策的运营工作负载而构建。示例包括欺诈检测、实时个性化、实时推荐和实时特征计算。Databricks 特征存储使用此架构,实现了从 Apache Kafka 到在线特征存储的 200 毫秒 p99 延迟。

来源:Databricks:Blog · databricks.com

来源:RadarAI · aihot.news