当前位置: 首页 > news >正文

Great Expectations数据契约:4步给数据流水线装上质检闸

Great Expectations数据契约:4步给数据流水线装上质检闸

【免费下载链接】great_expectationsAlways know what to expect from your data.项目地址: https://gitcode.com/GitHub_Trending/gr/great_expectations

凌晨3点,手机响了。下游报表的"订单金额"字段全是空值,你爬起来半小时,一路查,最后发现是上游表的金额字段从数字悄悄改成了字符串,没人通知你。这就是典型的数据契约事故。Great Expectations 是一个开源数据校验框架,让你把"数据应该长什么样"写成可执行的规则,对每一批进来的数据自动把关,出了什么问题直接指给你看。

数据契约到底在校验什么

把数据契约想成快递面单:生产者是寄件人,消费者是收件人,契约就是那张面单。面单校验什么?地址字段必须存在、电话格式必须对、重量不能是负数。数据校验也一样——字段是否存在(order_id 有值)、格式对不对(email 匹配某个正则)、取值在不在合理区间(乘客数在1到6之间)。关键在于这些规则是双方的"共同约定":生产者承诺交出来的数据合规,消费者就可以直接信任;一旦规则被违反,报错发生在寄件人那里,而不是凌晨3点的下游。

下图是一个典型的校验结果页面,每一批数据对应哪套规则、通过与否一目了然。

如果想看更完整的概念梳理,官方文档目录在 docs/。

第一次跑通校验要几步

假设你手边有一份 CSV 或者一张数据库表,最短路径是4步:

  1. 初始化项目:pip install great_expectations之后调用gx.get_context()。你会看到:项目根目录下自动生成.great_expectations/配置目录。
  2. 连接数据:本地 CSV 用context.data_sources.pandas_default.read_csv("data/orders.csv"),数据库则换对应的 SQLAlchemy 数据源。
  3. ⚠️ 写规则:建一个ExpectationSuite,往里逐条添加校验规则——这一步就是契约本身。
  4. 跑校验:batch.validate(suite)
import great_expectations as gx import great_expectations.expectations as gxe context = gx.get_context() batch = context.data_sources.pandas_default.read_csv("data/orders.csv") suite = gx.ExpectationSuite(name="orders_contract") suite.add_expectation(gxe.ExpectColumnValuesToNotBeNull(column="order_id")) suite.add_expectation( gxe.ExpectColumnValuesToBeBetween(column="amount", min_value=0, max_value=10000) ) results = batch.validate(suite) print(results.describe())

你会看到:每条规则的通过/失败状态、失败比例,外加几行失败样例数据。想深挖细节时,打开 Data Docs 页面能直接看到失败的具体行,不用再一行行捞。

你的场景适不适合用它

别因为工具流行就装,先看边界:

数据源 / 场景是否支持说明
CSV/Parquet/内存中的 Pandas支持开箱即用,上手最快
SQLAlchemy 兼容的数据库(Postgres/MySQL 等)支持覆盖主流关系库
Spark/BigQuery/Snowflake 等支持需安装对应依赖
拦截流式数据中的实时异常不支持它是批处理校验,不是流式引擎
校验自然语言内容的语义合理性不支持只校验结构、取值和格式规则

一句话判断:如果你的数据是批量产出的、规则可以用"非空、区间、格式、唯一性"描述,它就是对的工具;如果想拦流式数据或校验内容的"含义",先看看别的方案。具体校验逻辑在 great_expectations/validator/ 模块里,可以进去看看每条规则是怎么执行的。

跑通之后下一步做什么

第一次校验跑通后,最有价值的一件事是把这步挂进 CI 或定时任务——规则失败时自动阻断流程,数据契约才算真正开始干活。顺手再跑一次 Data Docs 生成,所有校验结果会变成一个可浏览的静态站点,不看代码的同事也能直接看到"数据哪里不对劲":

具体怎么挂进流水线,参考 great_expectations/checkpoint/ 模块里的 Checkpoint 机制即可。

【免费下载链接】great_expectationsAlways know what to expect from your data.项目地址: https://gitcode.com/GitHub_Trending/gr/great_expectations

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4175878.html

相关文章:

  • Awoo Installer 安装使用指南:3 种通道把 NSP、NSZ、XCI、XCZ 一次装进 Switch
  • WechatHook微信自动化完整指南:一文搞懂微信机器人5大核心玩法
  • 隐私优先的开源联系人+短信神器Connect You:从安装到全面上手的完整指南
  • libheif未来发展方向解析:AVIF标准演进与6大新技术支持
  • react-s-alert 全部 12 个配置项详解:stack、beep、offset 参数完全手册
  • 读懂LLaVA-v1.5-13B的config.json:CLIP视觉塔、mlp2x_gelu投影器与LLaMA-2的8个核心配置参数
  • 压缩包密码找回:4 条命令跑完整份字典,不用装任何软件
  • SMUDebugTool:免费开源的 Ryzen 底层参数调试工具,一个窗口读通 SMU、MSR 与电源表
  • QuickBMS 游戏资源提取:零基础解包到模组回填全解
  • intentrace底层实现(上):ptrace是如何拦截Linux进程每一次系统调用的
  • 揭秘ViTMatte-small-Composition-1k核心架构:Plain ViT如何征服图像抠图任务
  • 十分钟搞定游戏 DLSS 版本替换:DLSS Swapper 实操手册
  • ide-eval-resetter 指南:2 条路线重置 JetBrains 试用期,5 项常见问题速查
  • TrollInstallerX 快速教程:iOS 14.0-16.6.1 免越狱装 TrollStore,3 分钟一次装好
  • 为什么你需要Lanarky:构建LLM微服务的终极Python Web框架全解析
  • ide-eval-resetter如何帮你一键重置JetBrains IDE的30天试用期
  • php-baixiu:用 PHP + Apache 快速搭起内容管理后台的完整指南
  • 微信机器人 iPad 协议版:3 步快速搭好自动回复与群管助手
  • ETS2LA自动驾驶插件完整指南:3步给欧卡2配齐车道保持与自适应巡航
  • Python.NET泛型实战:如何在Python中使用Dictionary[String, Int32]等C泛型类型
  • 告别僵硬动画!D3.js缓动函数实战指南:让数据可视化动起来
  • T-Pot蜜罐平台故障排除手册:解决常见的安装和运行问题
  • Nous-Hermes-2-Vision-Alpha部署指南:从15GB显存到量化加速的完整落地清单
  • Inkpunk-Diffusion完整指南:揭秘这款水墨动漫风AI绘图DreamBooth模型与文生图实力
  • SkyPaint-AI-Diffusion核心揭秘:SkyCLIP如何用90%更少算力蒸馏双语AI绘画模型
  • 用CDecrypt批量解开Wii U NUS文件:从编译到出结果的完整流程
  • NCM 转 MP3 不求人:ncmdump 4 步上手教程,新手一次跑通
  • 什么是计算神经科学?Open Computational Neuroscience Resources 写给新手的入门科普指南
  • 丢进去一句话,3分钟出片:零基础AI视频生成工具Auto-Video-Generator实操
  • DataWave REST API参考手册:query、plan、lookup、predict等核心接口使用指南