
在 6 月 10 日至 12 日于美国旧金山举行的Databricks Data+AI峰会上,Databricks 宣布将Delta Live Tables(DLT)背后的技术贡献给Apache Spark项目,这个项目中,它将被称为 Spark 声明式管道(Spark Declarative Pipelines)。这一举措将使 Spark 用户更容易开发和维护流式管道,并进一步体现了 Databrick 对开源的承诺。
这个新特性允许开发人员定义数据流管道,而不需要在 Spark 中创建常见的命令式命令。虽然这些变化简化了编写和维护管道代码的任务,但用户仍需要理解 Spark 的运行时行为,并能够解决性能和正确性等问题。
在一篇描述新功能的博文中,Databricks 写道,可以使用 SQL 语法或通过一个简单的 Python SDK 来定义管道,该 SDK 声明流式数据源、表及其关系,而不是编写命令式 Spark 命令。该公司声称这将减少对 Apache Airflow 等编排器管理管道的需求。
在后台,框架解释查询,然后创建依赖图并优化执行计划。
声明式管道支持来自流式数据源(如 Apache Kafka 主题)的流表,并为存储聚合和结果提供物化视图。物化视图会在流表接收到新数据时自动更新。
Databricks 在其文档中提供了SQL语法的概述。摘录如下。该示例基于纽约市 TLC 行程记录数据集。
该示例展示了如何使用 CREATE STREAMING TABLE 命令定义流来构建管道,然后在后续查询中使用 FROM 语句消费它们。这个示例值得注意的是,能够使用 CONSTRAIN … EXPECT … ON VIOLATION 语法在管道中包含数据质量检查。
虽然 Apache Spark 的更改尚未发布,但许多文章已经描述了使用 Databricks DLT 的工程师的经验。在 Medium 上发表的一篇名为“为什么我喜欢Databricks中的Delta Live Tables”的文章中,Mariusz Kujawski 描述了 DLT 的功能以及如何最好地使用它们:“有了 DLT,你只需要几个小时就可以构建一个摄取管道,相比之下,开发一个自定义框架需要几天的时间。此外,内置的数据质量保证提供了额外的可靠性层。”
除了用于定义管道的声明式语法外,Spark 声明式管道还支持变更数据捕获(CDC)、批处理和流逻辑、内置重试逻辑和可观测性钩子。
声明式管道正在被合并到 Spark 项目中。该特性计划在 2026 年 1 月发布的下一个 Spark 版本 4.10 中使用。可以在工单SPARK-51727中查看 Apache Jira Spark 项目中进度。
原文链接:
https://www.infoq.com/news/2025/07/databricks-declarative-pipelines/
评论