第 10 章. 测量和监控管道性能
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
即使是最精心设计的数据管道也不是 "设置好就可以不用管 "的。测量和监控管道性能的做法至关重要。在管道可靠性方面,您有责任为团队和利益相关者设定期望值,并不辜负他们的期望。
本章概述了数据团队在收集数据和衡量工作绩效方面的一些技巧和最佳实践。
准备数据仓库
在监控和报告管道性能之前,您当然必须捕获测量所需的数据。 值得庆幸的是,作为一名数据专家,您眼前就有这样做的工具!数据仓库是存储数据管道中每个步骤的日志数据的最佳场所。
在本节中,我将定义用于存储 Airflow 数据的表格结构以及第 8 章中定义的数据验证框架。这些数据稍后将用于制定衡量管道性能所必需的指标。
我想指出的是,您可能还想跟踪和报告许多其他数据点。我喜欢这两个示例,因为它们涵盖了基础知识,并能启发您针对数据基础设施进行其他跟踪和测量。
数据基础设施模式
首先,您需要一个表来 存储来自 Airflow 的 DAG 运行历史。回顾第 7 章,Airflow 用于执行数据管道中的每个步骤。它还保存每个 DAG 运行的历史记录。 在提取数据之前,需要一个表来加载这些数据。下面是一个名为dag_run_history 的表的定义。该表应在数据仓库中创建,无论在数据导入过程中将数据加载到哪个模式中:
CREATETABLEdag_run_history(idint,dag_idvarchar(250),execution_datetimestampwithtimezone,statevarchar(250),run_idvarchar(250),external_triggerboolean,end_datetimestampwithtimezone,start_datetimestampwithtimezone);
除了报告 DAG 的性能外,深入了解数据的有效性也很重要。在第 8 章中,我定义了一个基于 Python 的简单数据验证框架。 在本章中,我将对其进行扩展,以便将每次验证测试的结果记录到数据仓库中。下面这个名为validation_run_history 的表将是验证测试结果的目的地。我建议在数据仓库的同一模式中创建该表,在加载时,输入的数据也会在该模式中显示:
CREATETABLEvalidation_run_history(script_1varchar(255),script_2varchar ...