尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

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

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步初始化项目pip install great_expectations之后调用gx.get_context()。你会看到项目根目录下自动生成.great_expectations/配置目录。连接数据本地 CSV 用context.data_sources.pandas_default.read_csv(data/orders.csv)数据库则换对应的 SQLAlchemy 数据源。⚠️ 写规则建一个ExpectationSuite往里逐条添加校验规则——这一步就是契约本身。跑校验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(nameorders_contract) suite.add_expectation(gxe.ExpectColumnValuesToNotBeNull(columnorder_id)) suite.add_expectation( gxe.ExpectColumnValuesToBeBetween(columnamount, min_value0, max_value10000) ) 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),仅供参考
返回列表