关于 great-expectations
面向构建数据管道的数据工程师的 Great Expectations 技能,提供基于期望的验证与监控模式。它封装了 DataFrame 资产、期望套件和验证运行流程,并可生成 HTML 数据文档。
主要功能
- 01创建 Pandas 数据上下文和资产
- 02按列配置基础期望套件
- 03运行检查点验证
- 04生成 HTML 数据文档
适用场景
- 01验证数据管道中的表格和列
- 02检查空值、范围、唯一性与格式
- 03为验证结果生成文档
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ majesticlabs-dev/ majestic-marketplace --skill great-expectations安装后在 Claude Code 中输入/great-expectations确认已加载。
附带文件scripts/expectations.py
详细介绍
Great Expectations
受众: 构建经过验证的数据管道的数据工程师。
目标: 提供基于期望的数据验证和监控 GX 模式。
脚本
从 scripts/expectations.py 执行 GX 函数:
from scripts.expectations import (
get_pandas_context,
add_dataframe_asset,
create_basic_suite,
run_validation
)
使用示例
快速设置
from scripts.expectations import get_pandas_context, add_dataframe_asset
context, datasource = get_pandas_context("my_datasource")
batch_request = add_dataframe_asset(datasource, "users", df)
创建期望套件
from scripts.expectations import create_basic_suite
columns_config = {
'user_id': {'not_null': True, 'unique': True, 'type': 'int'},
'age': {'min': 0, 'max': 150},
'status': {'values': ['active', 'inactive', 'pending']},
'email': {'regex': r'^[\w\.-]+@[\w\.-]+\.\w+$'}
}
suite = create_basic_suite(context, "user_suite", columns_config)
运行验证
from scripts.expectations import run_validation
results = run_validation(
context,
checkpoint_name="user_checkpoint",
batch_request=batch_request,
suite_name="user_suite"
)
if results['success']:
print("All expectations passed!")
else:
for failure in results['failures']:
print(f"Failed: {failure['expectation']} on {failure['column']}")
常见期望参考
| 类别 | 期望 | 描述 |
|---|---|---|
| 表 | ExpectTableRowCountToBeBetween | 行数范围 |
| 存在性 | ExpectColumnToExist | 列必须存在 |
| 空值 | ExpectColumnValuesToNotBeNull | 不含空值 |
| 范围 | ExpectColumnValuesToBeBetween | 值的上下限 |
| 集合 | ExpectColumnValuesToBeInSet | 允许的值 |
| 模式 | ExpectColumnValuesToMatchRegex | 正则表达式匹配 |
| 唯一性 | ExpectColumnValuesToBeUnique | 不含重复项 |
数据文档
# Build and open HTML reports
context.build_data_docs()
context.open_data_docs()
目录结构
great_expectations/
├── great_expectations.yml # Config
├── expectations/ # Expectation suites (JSON)
├── checkpoints/ # Checkpoint definitions
├── plugins/ # Custom expectations
└── uncommitted/
├── data_docs/ # Generated HTML docs
└── validations/ # Validation results
何时使用 Great Expectations
| 使用场景 | GX | 替代方案 |
|---|---|---|
| 管道监控 | ✓ | - |
| 数据仓库验证 | ✓ | - |
| 自动生成数据文档 | ✓ | - |
| 简单的 DataFrame 检查 | - | Pandera |
| 记录级 API 验证 | - | Pydantic |
依赖项
great_expectations>=0.18
pandas
评论
支持 Markdown