注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。
本文档提供了设置健康检查以监控管道健康状态的最佳实践。遵循这些指南应能实现稳健且有效的监控,以确保:数据输入、数据搭建和数据输出。
这些最佳实践不会涵盖确保数据集内容的质量、准确性或有效性。这需要对管道有更细致和功能性的了解,以确定在管道内进行正确的验证。
这些指南还应帮助您避免健康检查设置中的常见陷阱:
这些指南依赖于对以下内容的理解:
在本文档中,提到的计划的输入、中间和输出指的是已解析的计划,这与数据沿袭应用程序中的计划配置不同。
已解析的计划是一种指派角色给计划中涉及的不同数据集的心智模型。有些数据集会参与进来,因为它们可以由计划搭建,这意味着它们是计划的数据集选择的一部分。其他数据集则作为搭建所需的输入参与。根据数据集的角色,推荐不同的健康检查。
数据集在计划中可以有以下角色之一:
在一个具体的例子中,假设一个计划搭建了以下数据集:
在这种情况下,您可以这样拆分计划:
要确定一个计划的输入、输出和中间数据集,最简单的方法是打开数据沿袭中的计划。一旦进入数据沿袭,从侧边栏选择计划,这将应用计划着色,帮助您理解计划将尝试搭建的内容。
目标和将尝试搭建的内容通常由计划搭建。一个例外是数据连接同步的数据集,只有在计划上设置了“强制搭建”时才会搭建。
排除 永远不会由计划搭建。
输入(仅连接搭建) 不由计划搭建,除非它们有另一个上游输入。
关于陈旧性的一点简要说明:在实践中,计划很少会搭建这个图中的所有内容,因为某些数据集可能已经是最新的,重新计算它们只会浪费资源。然而,理解解析计划意味着弄清楚计划可以接触到的所有内容仍然很重要。
计划在“目标”上定义,这些通常与“输出”相同。然而,有些情况下目标和输出可能不同:
(1) 数据集可以是“输出”而不是明确定义的“目标”:
一个搭建output_c
的计划将总是需要搭建output_d
,因为B、C和D之间的变换是多输出变换。
因此,一个目标为output_c
的计划将同时有output_c
和output_d
作为输出,因为output_d
是由计划搭建且不被计划中的任何其他数据集使用的数据集。
(2) 数据集可以被定义为“目标”但不是“输出”:
即使一个数据集被定义为计划的“目标”,如果它被计划中的其他数据集使用,它被视为“中间”数据集而不是“输出”数据集。
在这个例子中,dataset_c是计划的“目标”,但不被视为“输出”:
以下逐步指南依赖于对任务与搭建状态检查,以及同步与数据新鲜度与上次更新时长检查的理解。如果您不确定这些检查之间的区别,请参阅健康检查类型。
计划为我们提供了管道的合理表示。由于它们是推荐的监控单位,您的监控效果取决于您设置的计划。在开始设置健康检查之前,请确保您的计划遵循这里概述的最佳实践。
在您的管道的所有已解析输入上安装检查。如果您的管道失败,能够追踪根本原因非常重要。输入陈旧或架构断裂时有发生——在输入上安装检查将帮助您检测到它们。注意:目前,一个特定类型的检查只能存在于一个特定数据集上。如果您想安装的检查已经存在,只需订阅它。
在您的管道的所有已解析输出上安装检查(请记住,这些是由计划搭建的,但不被您的计划中的任何其他数据集使用)。
可选地,在重要的中间数据集上安装检查,这些数据集通过其他应用程序直接或通过同步被用户消费:
上面解释的最佳实践总结在此表中以便快速参考:
搭建状态 | 架构 | 搭建时长 | TSLU | 数据新鲜度 | 同步新鲜度 | 同步状态 | |
---|---|---|---|---|---|---|---|
输入 | ✓ | ✓ (允许添加) | |||||
中间 | |||||||
输出 | ✓ | ✓ (完全匹配) | ✓ | ✓ | |||
面向用户的数据集* | ✓ (完全匹配) | ✓ | |||||
已同步的数据集* | ✓ (完全匹配) | ✓ | ✓ | ✓ |
[*] 可以是输入、中间或输出数据集。面向用户的数据集是用户直接在应用程序中消费的数据集,如Contour。