用于数据管道的 DCM Projects¶
DCM Projects 提供全生命周期的开发者体验,其中包括为管理数据管道量身定制的功能。
管道特定的命令并不适用于所有对象类型。它们为以下管道用例扩展了核心命令:
用于动态表的 REFRESH 命令 由 DCM project 管理。
用于数据质量预期的 TEST 命令 附加到托管对象。
PREVIEW 命令 用于在部署之前检查动态表、视图或表的示例输出。
用于动态表的 REFRESH 命令¶
部署管道定义变更后,您可以在测试数据质量预期之前刷新管道项目内的动态表,以便端到端应用任何新的转换逻辑。
您可以通过一条命令刷新由 DCM project 管理的所有动态表格及其所需的上游动态表格。此命令仅适用于由引用的项目部署和管理的动态表,与任何定义文件无关。其他对象类型(如任务)不受影响。
请参阅 用于数据质量预期的 TEST 命令,了解有关结合使用 REFRESH 和 TEST 的用法示例。
该命令将一直运行,直到所有动态表刷新完成,并返回每个动态表的行更改或错误的摘要。
如需运行 REFRESH 命令,请执行以下操作:
JSON 输出包含动态表刷新操作的结果,格式如下:
属性 |
描述 |
|---|---|
|
包含动态表刷新操作的结果。 |
|
一个条目数组,每个条目对应一个刷新的动态表。 |
|
刷新的动态表的完全限定名称。 |
|
刷新表的统计信息。 |
|
刷新期间插入的行数。 |
|
刷新期间删除的行数。 |
|
ISO 8601 时间戳,表示刷新后数据的时间点新鲜度。 |
动态表刷新的 JSON 输出的示例:
用于数据质量预期的 TEST 命令¶
您可以将数据质量预期设置为数据转换所有暂存区的质量关卡:
将期望值附加到 Bronze 层登录表中的原始数据,以确保原始输入符合期望值,并且不会在转换过程中导致错误。
将期望作为质量门附加到 Silver 层,以便通过在不同转换暂存区设置检查点来更轻松地调试数据问题。
将期望附加到 Gold 层,以确保数据产品的输出质量。
将数据产品下游使用者的期望附加到 Gold 层,以便在部署重大变更之前验证这些期望。
请参阅 数据指标函数,了解如何在 DCM 项目中附加期望。
您可以通过一条命令测试由 DCM project 管理的表、动态表格或视图上附加的所有数据质量期望。
不会检查无预期附加的数据指标函数。
您可以使用 CLI 命令将自动化测试设置为 CI/CD 工作流程的一部分。例如,如果您在 QA、测试或暂存环境中拥有类似生产的数据,您可以按照以下步骤操作:
在 QA 中执行 PLAN,以验证预期的项目定义变更。
DEPLOY 到 QA。
在 QA 中 REFRESH ALL 动态表,根据任何新的转换逻辑和更新的定义更新数据,从而确保不会基于过期数据进行期望验证。
在 QA 环境中,对附加到表对象的 TEST ALL 数据质量期望进行验证,以验证新部署的逻辑是否按预期运行,并且不会对数据输出的预期结构产生负面影响。
如果在 QA 中所有期望都满足,则继续在生产环境中执行 PLAN 和 DEPLOY。
如需运行 TEST 命令,请执行以下操作:
TEST 输出包含总体状态和期望及其值,格式如下:
重要
在预览阶段,确切的输出格式可能会发生变化。
属性 |
描述 |
|---|---|
|
测试运行的总体结果。可能的值:``SUCCESSFUL``(满足所有期望),``FAILED``(违反了一个或多个期望)。 |
|
预期结果数组,每个评估的数据质量预期对应一个结果。 |
|
评估该期望所对应的表或视图的完整限定名称。 |
|
包含数据指标函数的数据库。 |
|
包含数据指标函数的架构。 |
|
数据指标函数的名称(例如, |
|
项目中定义的期望的名称。 |
|
用于评估指标值的布尔表达式(例如, |
|
数据指标函数评估的结果。仅在 |
|
是否违反了预期。如果指标值不满足期望表达式,为 |
|
用于评估数据指标函数的列名数组。 |
数据质量测试的 JSON 输出示例:
PREVIEW 命令¶
当您编写或修改动态表或视图的 SELECT 语句时,示例输出有助于验证数据的形状。对于包含多个转换步骤的复杂数据沿袭图,在对上游进行更改时,您可以检查下游视图或动态表的输出结果。
要在部署之前验证代码中的转换是否会产生预期的数据输出,请运行 PREVIEW 命令。
运行 PLAN 的 PREVIEW 命令编译当前定义,与任何部署状态无关,然后返回指定动态表、视图或常规表的数据样本。
请记住以下要求和注意事项:
PREVIEW 命令必须始终引用表对象的完全限定名称,不得使用 Jinja 变量。
要在输出中查看示例数据,必须确保数据已在源表中可用。
PREVIEW 查询全部引用的动态表和视图的 SELECT 语句,但它不运行任务或 CREATE TABLE AS SELECT 语句。
如需运行 PREVIEW 命令,请执行以下操作: