什么是管道?

管道是 Lakeflow Spark 声明性管道(SDP)中开发和执行的主要单元。 管道是源代码文件和配置的集合。 源文件声明数据集(流式处理表、具体化视图和视图),以及生成数据集的查询和流。 配置指定管道的运行方式和数据存储位置。

管道是用于容纳你定义的流、流式表、物化视图和接收端的容器。 管道运行时,它会分析这些对象之间的依赖关系,并自动协调其执行顺序和并行化。 有关管道包含的对象的详细信息,请参阅 什么是 Lakeflow Spark 声明性管道

管道源代码

管道源代码是用 Python 或 SQL 编写的。 单个管道可以混合Python和 SQL 源文件,但每个文件只能包含一种语言。 由于管道分析其所有源文件中的数据集依赖项,因此可以按任意顺序跨文件组织源代码。

有关特定于语言的开发指南,请参阅使用 Python 开发管道代码并使用 SQL 开发 Lakeflow Spark 声明性管道代码

管道图

管道会自动推断数据集之间的依赖关系,并将其排列在有向无环图(DAG) 中。 该图确定计算顺序:上游数据集在下游数据集之前计算。 可以在 Lakeflow 管道编辑器中查看管道图并与之交互。

管道更新

管道更新通过以下方式计算每个数据集的当前状态:

  1. 使用正确的配置启动群集。
  2. 分析源文件并生成依赖项关系图。
  3. 以依赖项顺序计算或增量更新每个数据集。

管道以两种模式运行:

  • 触发:管道运行一次,并在所有数据集都处于最新状态时停止。
  • 连续:管道无限期运行,并在到达时处理新数据。

您从编辑器中以交互方式触发的更新会针对快速迭代进行优化,复用集群,并禁用自动重试。 请参阅 更新运行行为

管道类型

作业和管道列表包含的不只是由 Lakeflow Spark Declarative Pipelines 创建的管道。 Azure Databricks 运行多种不同类型的管道,作业和管道列表以及管道监视页面会用类型标签标明每一项,以便你区分它们。 下表将每个管道类型映射到pipeline_type事件日志中记录的值:

键入 作业和管道 pipeline_type 在事件日志中 Description
ETL WORKSPACE 在 Lakeflow Spark 声明式管道中定义的管道。 请参阅 Lakeflow Spark 声明式管道
MV/ST DBSQL 独立管道。 请参阅 独立管道

独立管道

您可以在 Lakeflow Spark 声明式管道之外,将流式表和物化视图作为 独立管道 来创建和管理。 可以使用 Databricks SQL 或 Python 创建和刷新独立的流式表和物化视图。 它们在同一Azure Databricks基础结构上运行,其处理语义与 Lakeflow Spark 声明性管道中的处理语义相同。 定义独立流式处理表或具体化视图时,流将隐式定义为流式处理表或具体化视图定义的一部分。

有关详细信息,请参阅 独立管道

Lakeflow 管道编辑器

Lakeflow 管道编辑器是为管道开发构建的 IDE。 它提供:

  • Python和 SQL 源文件的多文件代码编辑器
  • 用于组织文件和文件夹的管道资产浏览器
  • 显示数据集依赖项和状态的交互式管道图
  • 流式表和物化视图的数据预览
  • 执行见解和问题窗格,其中显示了最新运行的结果
  • 选择性执行以在不运行完整管道的情况下刷新单个文件或表

编辑器与 Azure Databricks 平台集成,并支持通过 Git 文件夹进行版本控制。 有关分步指南,请参阅 使用 Lakeflow 管道编辑器开发和调试 ETL 管道

其他资源