【开源项目推荐】Great Expectations—开源的数据质量工具

大家好,我是独孤风。

又到了本周的开源项目推荐。数据质量是企业进行数据治理非常重要的一个环节,高质量的数据对管理决策,业务支撑都有非常重要的作用。

只有持续的数据质量改进才能推动数据治理体系的完善,差劲的数据质量就如同顽固的疾病一样,如果不能得到及时的改善,最终可能会导致重大的问题。

近几年来,管理数据质量的工具层出不穷,但是能够全面的对企业数据质量进行分析与洞察的工具并不多见。

那么,有没有好用的开源的数据质量项目呢?

今天为大家推荐的开源项目,就是一个极为优秀的数据质量检查工具,开源的数据质量管理项目。让我们一起来看看吧~

概述

今天为大家推荐的开源项目名为Great Expectations。

Great Expectations是一个开源的数据质量检查工具,使用了基于机器学习的数据质量自动化管理工作流程。它可以轻松地对数据质量进行验证、建模和监控。用户以期望(expectations)的形式定义断言(assertions)。顾名思义,期望是您期望从数据中获得的质量,断言则是用声明性语言编写的。

例如,下图的断言示例定义了passenger_count列的值必须介于1和6之间。

Great Expectations根据这个规则,就会对数据进行验证,并且能够自动生成便于阅读的数据诊断报告。Great Expectations的另一个功能是自动化数据分析。它可以根据统计数据,自动从数据中生成期望。由于数据质量工程师不必从头开始编写断言,因此大幅节省了开发的时间。一旦各种预期准备就绪,它们就可以被合并到数据管道中。

可在**大数据流动后台回复"GreatExpectations"**获取安装包,源代码与学习资料。

功能演示

请参考大数据流动视频号的功能演示:

如何安装?

整个Great Expectations的使用流程如下图所示。

需要python版本为 3.8 到 3.11。

可以用下面的命令进行安装。

bash 复制代码
pip install great_expectations

如果要在python代码中使用,可以这样引入。

python 复制代码
import great_expectations as gx

随后建立一个上下文。

python 复制代码
context = gx.get_context()

连接数据。

python 复制代码
validator = context.sources.pandas_default.read_csv(
    "https://raw.githubusercontent.com/great-expectations/gx_tutorials/main/data/yellow_tripdata_sample_2019-01.csv"
)

定义一个期望

python 复制代码
validator.expect_column_values_to_not_be_null("pickup_datetime")
validator.expect_column_values_to_be_between(
    "passenger_count", min_value=1, max_value=6
)
validator.save_expectation_suite()

定义一个检查点。

python 复制代码
checkpoint = context.add_or_update_checkpoint(
    name="my_quickstart_checkpoint",
    validator=validator,
)

随后执行就可以了。

python 复制代码
checkpoint_result = checkpoint.run()

如果要查看结果可以执行下面的命令。

python 复制代码
context.view_validation_result(checkpoint_result)

支持的数据源

目前Great Expectations支持如下的数据源。

更多大数据,数据治理,人工智能知识分享,开源项目推荐,学习社群加入,请关注大数据流动。

相关推荐
皮卡丘不断更2 天前
手机优先的 Personal Ledger:把账目、学习和复盘放到同一个入口
数据库·sqlite·fastapi·开源项目·个人效率
charlie1145141914 天前
深探std::vector:三指针、扩容与迭代器失效
开发语言·c++·开源项目
千桐科技7 天前
开源共建数字水利生态:千桐科技智慧水利项目正式上线 Gitee,诚邀开发者参与共建!
大数据·开源·数据治理·开源项目·数字水利
charlie11451419113 天前
Cinux · 第一次跳进 Ring 3:用户态与特权隔离
开发语言·c++·操作系统·开源项目
带娃的IT创业者14 天前
拆掉那堵墙:LibrePods 如何让 AirPods 在 Android 上重获新生
android·开源项目·airpods·librepods·生态解锁
charlie11451419116 天前
IMX6ULL WM8960 的移植——前置介绍
开发语言·c++·开源项目·嵌入式linux
charlie11451419116 天前
Cinux是如何管理进程的 —— 上下文与调度
开发语言·c++·操作系统·开源项目
在水一缸22 天前
PGSimCity:当数据库内核变成一座可以漫步的城市
数据库·postgresql·可视化·开源项目·数据库内核·pgsimcity·技术科普
在水一缸23 天前
KOReader:当开源精神遇上电子墨水屏,一场阅读体验的静默革命
开源·开源项目·电子墨水屏·极客·kindle·koreader·阅读体验
charlie11451419124 天前
Cinux —— 给物理内存建账本:bitmap 物理内存管理器
开发语言·c++·操作系统·开源项目