deequ

用写单元测试的方式给大数据做全量体检

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 基础设施 🍴 复刻 585 🐛 待处理 63 👀 关注 64
GitHub ↗
GitHub 星标 ★ 3656
维护状态 较活跃
是否开源 开源
定价模式 🏷️完全免费 开源免费,Apache 2.0 许可证

项目预览

deequ 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类基础设施
开发团队awslabs
定价模式🏷️完全免费
价格说明开源免费,Apache 2.0 许可证
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议Apache-2.0
主要语言Scala
技术栈/模型dataquality,scala,spark,unit-testing
GitHub 星标★ 3656
上线时间2018-08-07 00:00:00
代码更新2026-10-20
仓库体积72.0 MB
本站数据更新2026-11-05
维护状态较活跃
收录时间2026-09-21
浏览次数1

项目介绍

Deequ 是 AWS 开源、构建在 Apache Spark 之上的数据质量校验库,核心思路是把数据质量约束写成类似单元测试的断言,在超大规模数据集上批量扫描并给出量化结果。它解决的是数据管道中“数据悄悄变脏却无人发现”的问题:上游 schema 变更、字段缺失、数值越界、唯一性破坏等,传统做法靠人工写 SQL 抽查,既慢又难覆盖全量。Deequ 提供约束定义、指标计算、约束验证和异常检测四大能力,可对全量数据计算完整性、唯一性、分布、相关性等指标,并支持把结果写入指标仓库做趋势对比,从而发现数据随时间的漂移。它天然适配 Spark,能横向扩展到 TB 级数据,适合在 ETL/ELT 流程中作为质量门禁,也常用于数据仓库入仓前校验和机器学习特征表的健康监控。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-09-21 · 当前星标 ★ 3656

技术标签

使用教程

难度:进阶 约 10 分钟 部署方式:库/依赖 5 步

环境要求

  • Java 11(Deequ 2.1.0 及以后版本要求;2.0.x 版本要求 Java 8)
  • Apache Spark(需选择与 Deequ 构件后缀匹配的版本,如 Spark 3.5.x)
  • 构建工具:Maven 或 sbt
  • Scala 2.12(较新 Spark 版本使用;Spark 2.2.x/2.3.x 使用 Scala 2.11)

安装与启动步骤

  1. 1确认 Spark 版本

    先确认你的应用使用的 Apache Spark 版本,再据此挑选后缀匹配的 Deequ 构件,版本不匹配会导致运行失败。

  2. 2选择 Deequ 版本

    从 Maven 中央仓库的 deequ 可用版本列表中,选择与 Spark 版本后缀一致的最新 Deequ 2.x 发布版。

  3. 3添加 Maven 依赖

    在 Maven 项目的 pom.xml 中加入 deequ 依赖,artifactId 为 deequ,version 后缀需与 Spark 版本对应。

    <dependency>
      <groupId>com.amazon.deequ</groupId>
      <artifactId>deequ</artifactId>
      <version>2.0.21-spark-3.5</version>
    </dependency>
  4. 4或添加 sbt 依赖

    如果使用 sbt 项目,在 build.sbt 中用 libraryDependencies 声明同版本依赖,效果与 Maven 一致。

    libraryDependencies += "com.amazon.deequ" % "deequ" % "2.0.21-spark-3.5"
  5. 5在 Spark 作业中调用

    重新加载依赖后,在基于 Spark 的 Scala 项目中导入 com.amazon.deequ 相关类,即可定义数据质量约束并执行校验。

关键配置

配置项必填说明示例
groupId是Maven 坐标组织名,固定为 com.amazon.deequcom.amazon.deequ
artifactId是Maven 坐标构件名,固定为 deequdeequ
version是Deequ 版本,后缀必须与所用 Spark 版本匹配2.0.21-spark-3.5

如何确认成功

项目能成功解析 com.amazon.deequ:deequ 依赖并编译,运行 Spark 作业时可正常导入 Deequ 类,无版本冲突报错。

常见问题

Q:应该选哪个 Deequ 版本?

A:版本后缀必须与应用的 Spark 版本一致,例如 Spark 3.1.x 用 -spark-3.1、Spark 3.5.x 用 -spark-3.5;Spark 3.0.x 及更早需用 Deequ 1.x。

Q:Java 版本有什么要求?

A:Deequ 2.1.0 及以后版本要求 Java 11,较早的 2.0.x 版本要求 Java 8,选错会无法运行。

Q:Scala 版本怎么选?

A:Spark 2.2.x 和 2.3.x 的 Deequ 发布版使用 Scala 2.11,后续支持的 Spark 版本使用 Scala 2.12。

Q:Python 用户怎么用?

A:可以使用 PyDeequ,它是 Deequ 的 Python 接口,在 GitHub、readthedocs 和 PyPI 上均可获取。

注意事项

  • 不要臆造依赖版本,务必到 Maven 中央仓库 deequ 的 available versions 页面挑选与 Spark 匹配的最新发布版。
  • Spark 3.0 的支持维护在 legacy-spark-3.0 分支。
  • Deequ 构建在 Apache Spark 之上,属于库/依赖,不是独立可执行服务,需集成进你的 Spark 项目使用。

核心亮点

  • 约束即代码,可像单元测试一样在 CI/调度中自动执行并失败告警
  • 基于 Spark 分布式计算,支持全量扫描而非抽样,适合 TB 级数据
  • 内置异常检测,可对比历史指标发现数据分布漂移,而非只看固定阈值

不足之处

  • 强依赖 Spark 与 Scala 生态,非 Spark 技术栈团队接入成本高
  • 约束与指标配置偏代码化,缺少开箱即用的可视化界面,运维门槛较高

适用场景

  • ETL/ELT 管道入仓前的数据质量门禁
  • 数据仓库表的主键唯一性、非空与取值域巡检
  • 机器学习特征表的分布漂移监控与告警

替代项目

Great Expectations、Soda Core

上一篇:freebucks-proxy

下一篇:devito

同类项目推荐

comfyui-api 开源

把 ComfyUI 封装成高并发 API,同步异步都能拿结果

A simple API server to make ComfyUI easy to scale horizontally. Get outputs directly···

★ 459 2026-08-09
VectorCode 开源

给代码建索引,让 LLM 更懂你的仓库

A code repository indexing tool to supercharge your LLM experience.

★ 874 2026-08-09
mosec 开源

动态批处理+流水线,榨干GPU,提升模型服务吞吐量

A high-performance ML model serving framework, offers dynamic batching and CPU/GPU p···

★ 903 2026-08-09
rainbond 开源

一键把 AI 项目跑在 Kubernetes 上,自动运维不折腾

Rainbond is an open-source container platform that requires no Kubernetes expertise.···

★ 6293 2026-09-15
lupine 开源

让无GPU的电脑用上远程显卡,跑AI应用像本地一样

LUPINE is a GPU over IP bridge allowing GPUs on remote machines to be attached to CP···

★ 2457 2026-08-09
velobase-harness 开源

把 AI 原型一键变成能收费的 SaaS

All AI developers deserve to get paid. Turn your AI prototype into a paid SaaS with···

★ 619 2026-08-09
split-lang 开源

一句话拆开混合语言,让 NLP 更精准

✨ Split text by languages (e.g. 你喜欢看アニメ吗 -> 你喜欢看 | アニメ | 吗) for NLP···

★ 74 2026-08-09
VidCom2 开源

给视频大模型视觉 token 瘦身,推理更快还不掉点

[EMNLP 2025 Main] Video Compression Commander: Plug-and-Play Inference Acceleration ···

★ 136 2026-10-14