在我们生成规则(在《远大前程》中称为期望)之后,我们可以运行测试管道,它包含以下步骤:
将我们要抓取的 URL 加入队列
刮
解析
使用 Great Expectations 验证已解析的文档
这样,我们就可以检查我们无法控制的配置文件的数 电话号码库 据质量。动态覆盖测试是我们数据质量保证流程中最重要的测试,因为它们会检查从抓取到解析的整个流程,并验证我们无法控制的配置文件的数据质量。这就是为什么我们会按计划为每个目标运行动态覆盖测试。
然而,从头开始实施动态覆盖测试可能具有挑战性,因为它需要一些有关 Great Expectations 和 Dagster 的知识。这就是为什么我们准备了一个演示项目来展示如何使用 Great Expectations 和 Dagster 来实现自动化数据质量检查。
实施自动数据质量检查
在这个 Gitlab 仓库中,你可以找到一个如何使用 Dagster 和 Great Expectations 测试数据质量的演示。动态覆盖率测试图有更多的步骤,例如 seed_urls、scrape、parse 等,但为了简单起见,在这个演示中省略了一些操作。然而,它包含了动态覆盖率测试中最重要的部分——数据质量验证。演示图由以下操作组成:
load_items: 从文件加载数据并将其加载为 JSON 对象。
load_structure: 从文件加载数据结构。
get_flat_items: 使数据平坦化。
load_dfs:使用来自 load_structure 操作的结构将数据加载为 Spark DataFrames。
ge_validation:对每个 DataFrame 执行 Great Expectations 验证。
post_ge_validation:检查 Great Expectations 验证是否通过或失败。
质量测试演示图
虽然有些操作是不言自明的,但让我们来研究一下可能需要进一步详细说明的一些操作。
生成结构
load_structure 操作本身并不复杂。然而,重要的是结构的类型。它表示为 Spark 模式,因为我们将使用它来将数据加载为 Spark DataFrames,因为 Great Expectations 可以与它们配合使用。Pydantic 模型中的每个嵌套对象都将表示为单独的 Spark 模式,因为 Great Expectations 不能很好地处理嵌套数据。
例如,像这样的 Pydantic 模型: