将期望应用于新数据

使用 Great Expectations 的数据质量入门

Davina Moossazadeh

Data Scientist

检查点

检查点(Checkpoint)——将具有共享参数的验证定义分组并运行的对象

一个检查点示意图,包含以下流程:批次请求 -> 数据源 -> 验证定义。验证定义输出验证结果,进入可选的动作列表,包含一个或多个动作。

动作(Actions)——由检查点配置的组件,根据验证结果将 GX 与其他工具集成

1 https://docs.greatexpectations.io/docs/core/trigger_actions_based_on_results/create_a_checkpoint_with_actions/
使用 Great Expectations 的数据质量入门

为何使用检查点?

可复用性

  • 可对同一批次运行多个验证定义

动作

  • 可基于验证结果触发动作
使用 Great Expectations 的数据质量入门

创建检查点

$$

通过 gx.Checkpoint() 创建带 Slack 通知的检查点:

checkpoint = gx.Checkpoint(

name="my_checkpoint",
validation_definitions=[validation_definition],
actions=[SlackNotificationAction()] # 可选 )
使用 Great Expectations 的数据质量入门

检查点错误

在将验证定义添加到数据上下文之前运行检查点会报错:

CheckpointRelatedResourcesFreshnessError: 
ValidationDefinition 'my_validation_definition' must be added to the DataContext 
before it can be updated. Please call `context.validation_definitions.add(
<VALIDATION_DEFINITION_OBJECT>)`, then try your action again.
使用 Great Expectations 的数据质量入门

添加验证定义

使用 .validation_definitions.add() 将验证定义添加到数据上下文:

validation_definition = context.validation_definitions.add(

validation_definition=validation_definition )
使用 Great Expectations 的数据质量入门

运行检查点

checkpoint_results = checkpoint.run(
    batch_parameters={"dataframe": dataframe}
)

检查点结果。输出很长,无法完整显示在幻灯片上。

使用 Great Expectations 的数据质量入门

评估检查点结果

print(checkpoint_results.success)
False
print(checkpoint_results.describe())
使用 Great Expectations 的数据质量入门

评估检查点结果

{ "success": false,
  "statistics": {
    "evaluated_expectations": 1, "successful_expectations": 0,
    "unsuccessful_expectations": 1, "success_percent": 0.0
  },
  "expectations": [{
    "expectation_type": "expect_table_row_count_to_equal",
    "success": false,
    "kwargs": {"batch_id": ""my_datasource-my_dataframe_asset", "value": 118000}, 
    "result": {"observed_value": 11866}}
  ],
  "result_url": "https://app.greatexpectations.io/organizations/my_org/data-assets/*/validations/expectation-suites/0a123b9c-e370-4b18-b703-785dde88732d/results/cb093105-6ede-47d4-a141-dee10c632e18"
}
使用 Great Expectations 的数据质量入门

Data Docs

Data Docs —— 从 GX 元数据生成的静态网站

# 带有更新 Data Docs 动作的检查点
gx.Checkpoint(
    name,
    validation_definitions,
    actions=[
      gx.checkpoint.actions.UpdateDataDocsAction(
          name="update_my_site", site_names="my_data_docs_site"
        )
    ],
)
1 https://docs.greatexpectations.io/docs/core/configure_project_settings/configure_data_docs/
使用 Great Expectations 的数据质量入门

Data Docs

Data Docs 网页截图,显示表级期望及其观测值列表。行数范围的一个期望展开了验证历史表,展示运行时间、观测值、最小值和最大值。右上角绿色方框带对勾写着"所有期望已满足"。

使用 Great Expectations 的数据质量入门

速查表

将验证定义添加到数据上下文:

context.validation_definitions.add(
    validation_definition
)

创建检查点:

checkpoint = gx.Checkpoint(
    name: str, 
    validation_definitions: list,
)

运行检查点:

checkpoint_results = checkpoint.run(
    batch_parameters={"dataframe": dataframe}
)

检查结果:

checkpoint_results.success
checkpoint_results.describe()
使用 Great Expectations 的数据质量入门

Vamos praticar!

使用 Great Expectations 的数据质量入门

Preparing Video For Download...