尧图精选

Great Expectations 数据验证快速上手指南:六步从安装到读懂验证报告

🕒 发布时间:2026/9/14 18:40:06 📁 来源:尧图网络
Great Expectations 数据验证快速上手指南六步从安装到读懂验证报告【免费下载链接】great_expectationsAlways know what to expect from your data.项目地址: https://gitcode.com/GitHub_Trending/gr/great_expectationsGreat Expectations 是一个开源数据验证框架它把「数据质量检查」从散落在各个脚本里的手写断言变成可复用、可文档化、可调度执行的测试。本教程用一份用户行为日志 CSV 做示例数据走完完整链路装好框架、创建数据上下文、登记数据源、写三条数据期望Expectation、跑一次验证、打开报告。一条命令装好 Great ExpectationsGreat Expectations 支持 Python 3.10 到 3.13官方建议在虚拟环境中部署避免和系统里已有的包互相污染。建环境、激活、安装三步走完python -m venv gx_env source gx_env/bin/activate pip install great_expectations⚠️ Windows 下激活命令是gx_env\Scripts\activate如果系统里装过旧版 Great Expectations先在虚拟环境外确认pip list里没有残留避免版本混用。安装包已带齐 Pandas 等核心依赖装完即可进入下一步。创建数据上下文整个项目的家数据上下文Data Context是 Great Expectations 的核心对象数据源、期望套件、验证定义、检查点、报告站点全都挂在它下面。在准备存放项目的空目录里执行import great_expectations as gx context gx.get_context()get_context()会自动检测当前目录已有配置就加载没有就生成一个文件型上下文并顺手搭好项目骨架。数据上下文落在磁盘上是什么样当前目录会多出一个great_expectations/子目录里面是主配置great_expectations.yml、期望套件与验证结果的存储目录以及 Data Docs 报告站点的位置。后面所有操作本质上都是在往这个上下文里登记对象。登记数据源指向行为日志假设行为日志放在data/user_events.csv有user_id、event_type、event_time三列。登记数据源分三步圈定文件夹、声明 CSV 资产、指向具体文件data_source context.data_sources.add_pandas_filesystem( nameuser_events_source, base_directory./data, ) csv_asset data_source.add_csv_asset(nameuser_events) batch_definition csv_asset.add_batch_definition_path( nameuser_events_batch, pathuser_events.csv, )这三层对象各司其职数据源Data Source描述数据从哪来数据资产Data Asset描述哪一类文件批次定义Batch Definition描述验证哪一份具体文件。真正执行验证时加载进内存的是批次定义对应的数据。以后日志按月分目录也可以换成按正则批量匹配的方式模式不变。写三条数据期望期望Expectation就是写给数据的测试用例。先建一个期望套件Expectation Suite挂上前两条规则expectation_suite context.suites.add(gx.ExpectationSuite(nameuser_events_suite)) expectation_suite.add_expectation( gx.expectations.ExpectColumnValuesToNotBeNull(columnuser_id) ) expectation_suite.add_expectation( gx.expectations.ExpectColumnValuesToBeInSet( columnevent_type, value_set[page_view, page_load, purchase, user_signup], ) )第一条要求user_id不能有空值第二条限定event_type只能取四种事件名。再补一条时间窗规则expectation_suite.add_expectation( gx.expectations.ExpectColumnValuesToBeBetween( columnevent_time, min_value2024-01-01, max_value2024-12-31, ) )内置的期望类型有几十种非空、唯一性、取值范围、枚举、分布、列间关系都能覆盖还可以给规则加mostly参数容忍少量异常值。跑通流程上面三条足够。把数据和规则绑起来执行一次验证规则和数据各自都不产生作用绑到一起才生效。要登记两个对象验证定义Validation Definition负责哪份数据用哪套规则检查点Checkpoint负责跑哪些验证、跑完做什么validation_definition context.validation_definitions.add( gx.ValidationDefinition( nameuser_events_validation, databatch_definition, suiteexpectation_suite, ) ) checkpoint context.checkpoints.add( gx.Checkpoint( nameuser_events_checkpoint, validation_definitions[validation_definition], actions[gx.checkpoint.actions.UpdateDataDocsAction(nameupdate_data_docs)], ) ) result checkpoint.run()result[success]为 True 表示所有期望都通过actions列表还能挂 Slack 通知、结果回写对象存储等动作每个动作一行代码官方文档有完整清单。生成并阅读 Data Docs 报告验证结果不该只留在result变量里。Great Expectations 能把历次结果编译成一个可浏览的静态站点叫 Data Docscontext.build_data_docs() context.open_data_docs()第一行把静态 HTML 写进 data_docs 目录第二行直接在浏览器打开。报告怎么读站点首页是每次验证的总体通过情况点进单次验证能看到每条 Expectation 的判定结果、观测值和样本统计。失败的期望会展开「失败行预览」像下面这张截图还附带一段可直接运行的取数代码方便你定位到具体坏行提示第一次跑几乎必然有期望失败这很正常。数据验证的价值在于把数据可能有问题变成确切知道哪些行有问题失败报告本身就是资产。把验证接进日常工作流到这里整条链路已经闭环每来一份新数据调一次checkpoint.run()就能出验证结果并自动刷新报告。要上调度只需把这段调用包成一个脚本交给 Airflow、Prefect 或系统 cron 按时触发也可以改用great_expectations命令行工具在 CI 里执行。SQL 类数据源PostgreSQL、Snowflake 等与期望参数化的写法可以照着仓库 docs/docusaurus/docs/core/ 目录下的入门教程延伸结构和刚才跑通的流程一致。下一步行动给你的检查点 actions 加一个 Slack 通知动作具体做法见官方文档的 Trigger Actions 章节和 GitHub 仓库中的示例。【免费下载链接】great_expectationsAlways know what to expect from your data.项目地址: https://gitcode.com/GitHub_Trending/gr/great_expectations创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →