许多数据管道都是在一个巨大的、或多或少是由 Python 或 Scala 编写的命令式脚本中定义的。该脚本包含各个步骤的逻辑以及将这些步骤链接在一起的代码。在 Selenium 测试中遇到类似的情况时,开发人员发现了 Page Object 模式,此后许多行为驱动开发(BDD)框架都实现了将步骤定义与整合代码进行分离。一些团队正在尝试将同样的思想引入数据工程。单独的声明式数据管道定义(也许是用 YAML 编写的)只包含声明和步骤顺序。它声明输入和输出数据集,在需要更复杂逻辑时引用脚本。A Laqu... DSL.airflow-declarative工具似乎是这个领域中最有前景的工具,它是一个将 YAML中定义的有向无环图转换为空气流任务调度的工具。
许多数据管道都或多或少地使用了 Python 或 Scala 编写的命令式脚本来定义。这样的脚本中包含了各个步骤的逻辑以及将这些步骤串联起来的代码。在使用 Selenium 测试时, 出现过类似的情况,而后开发人员发现了 Page Object 模式,后来许多行为驱动开发(BDD)框架都实现了步骤定义与步骤组合之间的分离。 现在,一些团队正在尝试为数据工程引入相同的思路。一个独立的声明式数据管道定义(可能是用 YAML 编写的)仅包含一些步骤的声明和顺序。 它定义了输入和输出的数据集,并且在需要更复杂的逻辑时决定是否需要以及何时引入脚本。 我们发现了该领域的第一个开源工具——a模式。