Great Expectations 期望套件操作指南:CRUD操作详解
什么是期望套件
在Great Expectations项目中,期望套件(Expectation Suite)是数据质量验证的核心组件。它包含一组针对数据的期望(Expectations),这些期望定义了数据应该满足的条件。期望套件允许用户在不重新运行验证的情况下,对期望执行创建、读取、更新和删除(CRUD)操作。
期望匹配机制
所有CRUD操作都依赖于两个关键参数:
-
expectation_configuration:期望配置对象,用于确定该期望是否已存在于套件中
- 可以是完整的或部分的ExpectationConfiguration
- 包含期望类型和相关的参数
-
match_type:匹配类型字符串,决定匹配标准
domain
:检查两个期望配置是否应用于相同数据(最宽松的匹配)success
:除domain参数外,还包括评估期望成功与否的参数(如mostly、max等)runtime
:最严格的匹配,包括domain、success和运行时配置参数
添加或更新期望
使用add_expectation_configuration
方法可以向套件添加新期望或更新现有期望:
suite.add_expectation_configuration(
expectation_configuration,
match_type,
overwrite_existing
)
该方法的行为逻辑如下:
- 如果未找到匹配期望,则添加新期望
- 如果找到匹配期望且
overwrite_existing=True
,则更新该期望 - 如果找到多个匹配期望,将抛出错误(需更具体的匹配条件)
最佳实践:对于关键数据验证,建议使用runtime
级别的匹配,确保期望的精确性;对于常规检查,domain
级别的匹配可能足够。
删除期望
使用remove_expectation
方法可以从套件中删除期望:
suite.remove_expectation(
expectation_configuration,
match_type,
remove_multiple_matches
)
该方法的行为逻辑:
- 找到一个匹配期望时,删除它
- 找到多个匹配期望时:
remove_multiple_matches=False
:抛出错误remove_multiple_matches=True
:删除所有匹配期望
- 未找到匹配期望时抛出错误
使用验证器操作期望
当使用验证器(Validator)交互式工作时,可以直接调用验证器的相应方法:
validator.remove_expectation(
expectation_configuration,
match_type,
remove_multiple_matches
)
实际应用场景:在数据管道开发过程中,随着对数据理解的深入,经常需要调整期望。例如:
- 发现某个列的值范围比预期更广时,更新
expect_column_values_to_be_between
期望 - 当不再需要检查某些数据质量指标时,删除相关期望
- 添加新的业务规则作为期望
总结
Great Expectations的期望套件操作提供了灵活的数据质量规则管理能力。通过理解匹配类型和操作方法,数据工程师可以高效维护数据验证规则,确保数据质量检查与业务需求保持同步。掌握这些操作是构建健壮数据质量保障体系的关键步骤。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考