You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Great Expectations:Checkpoint能否为各ValidationDefinition配置不同批次参数?

在GX Core 1.0+中为Checkpoint内的ValidationDefinition配置独立批次参数

可以实现单个Checkpoint内不同gx.ValidationDefinition实例使用不同的批次参数,无需为每个验证定义单独创建Checkpoint,以下是两种可行方案:

方案一:创建ValidationDefinition时绑定专属批次参数

在定义每个ValidationDefinition时,直接通过batch_parameters参数指定其对应的DataFrame或其他批次参数,这样Checkpoint运行时会自动使用各验证定义自身绑定的参数,无需在run()方法中传入全局参数。

示例代码:

import great_expectations as gx
from great_expectations.core.validation_definition import ValidationDefinition

# 准备两个不同的DataFrame
df_user_data = ...
df_order_data = ...

# 为每个DataFrame创建绑定专属批次参数的ValidationDefinition
vd_user = ValidationDefinition(
    data_source_name="pandas_ds",
    data_asset_name="user_data",
    expectation_suite_name="user_data_suite",
    batch_parameters={"dataframe": df_user_data}
)

vd_order = ValidationDefinition(
    data_source_name="pandas_ds",
    data_asset_name="order_data",
    expectation_suite_name="order_data_suite",
    batch_parameters={"dataframe": df_order_data}
)

# 创建包含多个ValidationDefinition的Checkpoint
multi_vd_checkpoint = gx.Checkpoint(
    name="multi_validation_checkpoint",
    validation_definitions=[vd_user, vd_order]
)

# 直接运行,无需传入全局batch_parameters
run_result = multi_vd_checkpoint.run()

方案二:运行Checkpoint时动态指定各ValidationDefinition的批次参数

如果需要在运行阶段灵活调整参数,可以使用run()方法的validation_definition_batch_parameters参数,该参数接收一个字典,键为ValidationDefinition的名称或实例,值为对应的批次参数。

示例代码:

import great_expectations as gx
from great_expectations.core.validation_definition import ValidationDefinition

# 创建未绑定批次参数的ValidationDefinition(需指定name以便后续识别)
vd_user = ValidationDefinition(
    name="user_validation",
    data_source_name="pandas_ds",
    data_asset_name="user_data",
    expectation_suite_name="user_data_suite"
)

vd_order = ValidationDefinition(
    name="order_validation",
    data_source_name="pandas_ds",
    data_asset_name="order_data",
    expectation_suite_name="order_data_suite"
)

# 创建Checkpoint
multi_vd_checkpoint = gx.Checkpoint(
    name="multi_validation_checkpoint",
    validation_definitions=[vd_user, vd_order]
)

# 运行时为每个ValidationDefinition指定不同的DataFrame
run_result = multi_vd_checkpoint.run(
    validation_definition_batch_parameters={
        "user_validation": {"dataframe": df_user_data},
        "order_validation": {"dataframe": df_order_data}
    }
)

两种方案各有适用场景:方案一适合参数固定的长期复用场景,方案二更适合需要动态调整参数的临时运行场景。

内容的提问来源于stack exchange,提问作者Vladimir Vilimaitis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 03:15:03