本文介绍 Dlt-meta,一个 Databricks Labs 项目,该项目提供工具,用于从维护的元数据生成 Lakeflow 声明性管道。
注释
开源 dlt-meta 项目(如 databrickslabs GitHub 帐户中的所有项目)仅用于探索目的。 Azure Databricks 不支持它或为其提供服务级别协议(SLA)。 不要提交 Azure Databricks 支持票证,以获取与此项目相关的问题。 而是提交 GitHub 问题,该问题将被审查为时间允许。
什么是 dlt-meta?
Lakeflow 声明性管道允许以声明方式指定表,并在管道中生成一个流,该流同时创建表,并在源数据发生更改时使其保持最新状态。 但是,如果你的组织有数百个表,则生成和管理这些管道非常耗时,并可能导致不一致的做法。
dlt-meta 项目是一个元数据驱动的元编程框架,旨在与 Lakeflow 声明性管道配合使用。 此框架利用一组 JSON 和 YAML 文件中记录的元数据,实现了青铜和白银数据管道的自动化。 dlt-meta 引擎使用 Python 代码为元数据中所述的流动态生成 Lakeflow 声明性管道代码。 生成有关管道的元数据,dlt-meta 生成管道。
将逻辑集中到一个位置(元数据),系统速度更快、可重用且更易于维护。
注释
dlt-meta 项目得名于 Azure Databricks 中以前的 增量实时表 功能。 Delta Live Tables 已替换为 Lakeflow 声明性管道,dlt-meta 可与 Lakeflow 声明性管道配合使用。
dlt-meta 的优点
dlt-meta 有两个主要用例:
- 简单地引入和清理大量表。
- 跨多个管道和用户强制实施数据工程标准。
使用元数据驱动方法的好处包括:
- 无需了解 Python 或 SQL 代码即可维护元数据。
- 维护元数据(而不是代码)需要更少的开销,并减少错误。
- 代码由 dlt-meta 生成,因此它保持一致,并且跨管道和已发布表的自定义代码较少。
- 可以轻松地将表分组到元数据中的管道中,从而生成最有效地更新数据所需的管道数。
它的工作原理是什么?
下图显示了 dlt-meta 系统的概述:
- 将元数据文件创建为 dlt-meta 的输入,以指定源文件和输出、质量规则和所需的处理。
- dlt-meta 引擎将载入文件编译为数据流规范,称为 DataflowSpec ,并存储该文件供以后使用。
- dlt-meta 引擎使用 DataflowSpec 创建生成青铜表的管道。 这会使用元数据文件读取源数据,并应用正确的数据期望来匹配质量规则。
- Dlt-meta 引擎接下来使用 DataflowSpec 创建生成银表的其他管道。 这会使用元数据文件为系统应用适当的转换和其他处理。
运行 dlt-meta 生成的管道,使输出保持最新状态,因为源数据已更新。
如何入门?
若要使用 dlt-meta,必须:
- 部署和配置 dlt-meta 解决方案。
- 为青铜层表和银层表准备元数据。
- 创建用于载入元数据的作业。
- 使用元数据为表创建管道。
GitHub 上的 dlt-meta 文档提供了一个教程,可帮助你开始使用此过程。 有关详细信息,请参阅 GitHub 上的 dlt-meta 入门 。