Freedom251 › Database Testing Tools
Amazon Deequ

What Amazon Deequ is
Amazon Deequ is an Apache Spark library for writing data unit tests that measure quality in large datasets. It is designed for data held in distributed filesystems or warehouses, including datasets with billions of rows. Checks can cover row counts, completeness, uniqueness, allowed and nonnegative values, patterns, and approximate quantiles. Deequ also supports data profiling, stored and queryable metrics, anomaly detection over time, automatic constraint suggestions, and incremental metric computation. Its declarative Data Quality Definition Language lets teams set rules for counts, completeness, uniqueness, statistics, schemas, freshness, and custom SQL. Row-level evaluation reports which records pass or fail supported rules, while dataset-level checks such as RowCount and Mean are skipped in that mode. Deequ is free and open source under Apache 2.0. It is distributed through Maven, with dependency examples for Maven and sbt; Python users can use PyDeequ. The project targets specific Spark versions, and releases 2.1.0 and later require Java 11.
Who it suits
Deequ suits teams using Apache Spark that need repeatable quality checks before datasets reach consuming systems or machine-learning algorithms. It is aimed at large-scale data and supports Scala, Java, DQDL, and SQL.
What it does well
- Checks common data quality conditions and patterns.
- Designed for datasets that can reach billions of rows.
- Supports profiling, anomaly detection, and incremental metrics.
- DQDL includes schema, freshness, and custom SQL rules.
- Apache 2.0 licensed and free to use.
What to know first
- Requires Apache Spark and a release matching its version.
- Deequ 2.1.0 and later require Java 11.
- Dataset-level checks are skipped in row-level evaluation.
Limits
The free plan is an Apache 2.0 library that requires Apache Spark, and the selected release must match the Spark version. Deequ 2.1.0 and later requires Java 11.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Apache 2.0 open-source library | Requires Apache Spark; release must match Spark version | Free |
As github.com lists them, read 5 Oct 2026. The maker's own page has the final word.
Getting started
- Open the Deequ GitHub repository.
- Choose a Deequ release that matches your Apache Spark version.
- Add the matching dependency using Maven or sbt.
- Use Scala, Java, DQDL, or SQL for checks; Python users can use PyDeequ.
Overview
Amazon Deequ is a data-quality testing library for Apache Spark, aimed at engineering teams whose datasets already run through Spark. It is a practical choice for adding validation to large-scale data workflows, but teams looking for checks without a Spark dependency should look elsewhere.
Key features
Deequ can check row counts, completeness, uniqueness, allowed and nonnegative values, patterns, and approximate quantiles. That range addresses common data-quality failures, while the Spark foundation makes it relevant to datasets measured in billions of rows. The trade-off is operational: Deequ is a library to use within a Spark environment, not a separate managed testing service.
Its examples extend beyond individual checks to profiling, metric persistence and querying, anomaly detection over time, automatic constraint suggestions, and incremental metric computation. Together these support recurring quality workflows, though teams must incorporate them into their own pipeline. DQDL provides declarative rules for counts, completeness, uniqueness, statistics, schema matching, freshness, and custom SQL.
Row-level evaluation identifies records that pass or fail supported rules. It does not cover every kind of check in that mode: dataset-level rules such as RowCount and Mean are skipped. Teams that need record-level outcomes should account for this distinction when designing their checks.
Deequ releases target particular Apache Spark versions, so selecting a compatible release is essential. The README lists Spark 3.1 through 3.5 compatibility for Deequ 2.x, and versions 2.1.0 and later require Java 11. Maven and sbt dependencies are provided. Python users can use PyDeequ, a Python API for Deequ. The library is Apache 2.0 licensed, and its maintainers welcome feedback and contributions.
Pricing
Deequ is free and open source under Apache 2.0. The Apache 2.0 open-source library plan costs nothing. There are no paid-plan trade-offs to weigh, but the free library requires Apache Spark and a release matched to that Spark version.
Platforms
Deequ is listed for API, Linux, macOS, self-hosted, and Windows use. It runs as a Spark library, with Maven artifacts and a Python interface through PyDeequ. Test execution is self-hosted; supported test languages are Scala, Java, DQDL, and SQL.
It supports schema migration tests, data-quality checks, pre-commit scanning, and custom detection rules. Git is the supported version-control system. It does not provide CI/CD scanning, pull-request scanning, or push protection, so those looking for checks integrated at those stages will need another approach.
Who it's for
Deequ suits data engineering teams that already operate Spark and want to catch quality problems before data reaches downstream systems or machine-learning algorithms. Its scale, multiple rule styles, and metrics workflows make it a strong fit for distributed data pipelines. It is less suitable for teams without Spark or those seeking a managed service with built-in CI/CD, pull-request, or push scanning.
Pros and cons
- Pros: A broad set of checks, profiling, and metrics workflows supports both validation and ongoing monitoring.
- Pros: DQDL offers declarative rules, while Scala, Java, and SQL provide other ways to define tests.
- Pros: Apache 2.0 licensing makes the library free to use and adapt.
- Cons: Teams must run Spark and pair Deequ with the appropriate Spark release; newer releases also require Java 11.
- Cons: Row-level evaluation skips dataset-level checks such as RowCount and Mean.
- Cons: No CI/CD, pull-request, or push-protection scanning is provided.
Alternatives
For a different balance of data-quality tooling and plan limits, compare Great Expectations: its free Developer plan covers up to 5 data assets under test per month, up to 3 users, and unlimited rows per asset, while its Team plan uses custom pricing.
DataKitchen TestGen is another option, with a free Open Source plan limited to 1 user, 1 connection, and 1 project, but unlimited tables and data volume and community support. Choose it if those caps fit better than a Spark-based library.
Atlas is an open-core alternative: its core engine is Apache 2.0 licensed, with advanced features available in proprietary editions. Consider it if an open-core model suits your needs better.
pgroll is a free option for PostgreSQL 14.0 or later, distributed as a single cross-platform binary. Soda offers a free plan with pipeline testing, metrics observability, and alerting and ticketing integrations. For Oracle Database PL/SQL unit testing, utPLSQL is a free and open-source framework. SQLancer is free under the MIT License, and SQLFluff is a free, open-source SQL linter.
Browse Database Testing Tools or Secrets Scanning Software for related categories.
Verdict
Choose Deequ if your team already runs Spark and wants a free, Apache 2.0 library with broad checks and metrics workflows for large datasets. Look elsewhere if Spark compatibility, self-hosted execution, or the absence of CI/CD and pull-request scanning makes it a poor fit for your pipeline.
Verdict
Deequ offers a broad set of data checks and profiling tools for Spark-based pipelines, including declarative rules and row-level results. Teams need to match the release to their Spark version and account for the Java 11 requirement in newer releases.
Questions
Is Amazon Deequ free?
Yes. The plan is listed as free, and the library is open source under Apache 2.0.
What does Deequ run on?
Deequ is an Apache Spark library. Its 2.x releases are listed as compatible with Spark 3.1 through 3.5, and the release should match the Spark version.
Can Deequ check individual rows?
Row-level evaluation identifies rows that pass or fail supported rules. Dataset-level rules such as RowCount and Mean are skipped in that evaluation.
Does Deequ have a Python interface?
The project points Python users to PyDeequ, described as a Python API for Deequ.
What license does Deequ use?
Deequ is licensed under Apache 2.0.
Facts from Amazon Deequ's own pages
- AWS relationship
- AWS Glue Data Quality documentation says that managed service is built on the open-source Deequ framework and uses DQDL. · docs.aws.amazon.com, 4 Oct 2026
- Checks
- Checks can validate row counts, completeness, uniqueness, allowed values, nonnegative values, URL patterns, and approximate quantiles. · github.com, 5 Oct 2026
- Compatibility
- Deequ 2.1.0 and later require Java 11, and the project lists Spark 3.1 through 3.5 compatibility for Deequ 2.x. · github.com, 5 Oct 2026
- Contribution and feedback
- The README welcomes feedback and contributions. · github.com, 4 Oct 2026
- Data scale
- The project says Deequ is designed for very large datasets, including billions of rows, typically stored in a distributed filesystem or data warehouse. · github.com, 4 Oct 2026
- DQDL
- Deequ supports the declarative Data Quality Definition Language, including composite rules using AND and OR. · github.com, 5 Oct 2026
- Installation
- The README provides Maven and sbt dependency examples and directs users to select a release matching their Spark version. · github.com, 4 Oct 2026
- Integrations
- Deequ is built on Apache Spark, is distributed through Maven artifacts, and has a Python interface called PyDeequ. · github.com, 5 Oct 2026
- Intended use
- The README describes using data checks to catch errors before datasets reach consuming systems or machine-learning algorithms. · github.com, 5 Oct 2026
- License
- The library is licensed under the Apache 2.0 License. · github.com, 5 Oct 2026
- Metrics and profiling
- The project examples include metrics persistence and querying, data profiling, anomaly detection over time, automatic constraint suggestions, and incremental metric computation. · github.com, 5 Oct 2026
- Profiling and monitoring
- Examples cover data profiling, persisting and querying computed metrics, anomaly detection over time, automatic constraint suggestions, and incremental metrics computation. · github.com, 4 Oct 2026
- Purpose
- Deequ is an Apache Spark library for defining unit tests that measure data quality in large datasets. · github.com, 5 Oct 2026
- Python interface
- The project points Python users to PyDeequ, described on its repository as a Python API for Deequ. · github.com, 4 Oct 2026
- Row-level results
- DQDL row-level evaluation identifies rows passing or failing supported rules, while dataset-level rules such as RowCount and Mean are skipped. · github.com, 5 Oct 2026
- Scale
- The project says it is designed for very large datasets, including billions of rows, typically stored in distributed filesystems or data warehouses. · github.com, 5 Oct 2026
- Security reporting
- The contribution guide asks users to report potential security issues through AWS/Amazon Security's vulnerability reporting page rather than a public GitHub issue. · github.com, 5 Oct 2026
- Support and contributions
- The project welcomes feedback and contributions and directs bug reports and feature requests to its GitHub issue tracker. · github.com, 5 Oct 2026
Where Amazon Deequ stands on Freedom251
- Database Testing Tools#5 of 28