Skip to content
SPECIFICTION
Get listed

Amazon Deequ

github.com

Free plan WindowsmacOSLinuxAPISelf-hosted
Visit github.com
Spec score 8.7 #3 of 28 in Database Testing Tools

What it is

Amazon Deequ is an Apache Spark library for writing data unit tests that measure quality in large datasets, including datasets with billions of rows. Its checks cover row counts, completeness, uniqueness, allowed values, 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 includes rules for counts, completeness, uniqueness, statistics, schema matching, freshness, and custom SQL. Row-level evaluation can identify records that pass or fail supported rules, while dataset-level rules such as RowCount and Mean are skipped in that mode. Deequ targets specific Apache Spark versions, so the release must match the Spark version; versions 2.1.0 and later require Java 11. The project provides Maven and sbt dependency examples. It is licensed under Apache 2.0, and Python users can use the PyDeequ interface.

Spec sheet

Purpose
Deequ is an Apache Spark library for defining unit tests that measure data quality in large datasets.Read 5 Oct 2026 · github.com
Integrations
Deequ is built on Apache Spark, is distributed through Maven artifacts, and has a Python interface called PyDeequ.Read 5 Oct 2026 · github.com
License
The library is licensed under the Apache 2.0 License.Read 5 Oct 2026 · github.com
AWS relationship
AWS Glue Data Quality documentation says that managed service is built on the open-source Deequ framework and uses DQDL.Read 4 Oct 2026 · docs.aws.amazon.com
Checks
Checks can validate row counts, completeness, uniqueness, allowed values, nonnegative values, URL patterns, and approximate quantiles.Read 5 Oct 2026 · github.com
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.Read 5 Oct 2026 · github.com
Contribution and feedback
The README welcomes feedback and contributions.Read 4 Oct 2026 · github.com
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.Read 4 Oct 2026 · github.com
DQDL
Deequ supports the declarative Data Quality Definition Language, including composite rules using AND and OR.Read 5 Oct 2026 · github.com
Installation
The README provides Maven and sbt dependency examples and directs users to select a release matching their Spark version.Read 4 Oct 2026 · github.com
Intended use
The README describes using data checks to catch errors before datasets reach consuming systems or machine-learning algorithms.Read 5 Oct 2026 · github.com
Metrics and profiling
The project examples include metrics persistence and querying, data profiling, anomaly detection over time, automatic constraint suggestions, and incremental metric computation.Read 5 Oct 2026 · github.com
Profiling and monitoring
Examples cover data profiling, persisting and querying computed metrics, anomaly detection over time, automatic constraint suggestions, and incremental metrics computation.Read 4 Oct 2026 · github.com
Python interface
The project points Python users to PyDeequ, described on its repository as a Python API for Deequ.Read 4 Oct 2026 · github.com
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.Read 5 Oct 2026 · github.com
Scale
The project says it is designed for very large datasets, including billions of rows, typically stored in distributed filesystems or data warehouses.Read 5 Oct 2026 · github.com
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.Read 5 Oct 2026 · github.com
Support and contributions
The project welcomes feedback and contributions and directs bug reports and feature requests to its GitHub issue tracker.Read 5 Oct 2026 · github.com

Plans and prices

Apache 2.0 open-source library Free Requires Apache Spark; release must match Spark version Read 5 Oct 2026 · github.com

Every Amazon Deequ plan and price →

Strong points and limits

Strong points

  • Checks completeness, uniqueness, patterns, and more.
  • Includes profiling and anomaly detection examples.
  • DQDL supports freshness and custom SQL rules.
  • Apache 2.0 licensed.
  • Python interface available through PyDeequ.

Limits

  • Requires Apache Spark.
  • Release must match the Spark version.
  • Versions 2.1.0 and later require Java 11.
  • Dataset-level rules are skipped in row-level evaluation.

Who it suits

Deequ suits teams using Apache Spark to check large datasets before they reach consuming systems or machine-learning algorithms. It is also relevant to users who want profiling, metrics, or declarative quality rules.

Amazon Deequ in depth

Read the full write-up

Overview

Amazon Deequ is a data-quality testing library built for Apache Spark. It suits engineering teams that already run Spark and want to catch dataset problems before data reaches downstream systems or machine-learning workloads. Its breadth is useful, but Spark is a firm prerequisite rather than an optional integration.

Key features

Deequ checks row counts, completeness, uniqueness, allowed and nonnegative values, patterns, and approximate quantiles. That makes it a practical toolkit for validating common data assumptions across large datasets, including workloads the project targets at billions of rows. The scale is most relevant to teams whose data already sits in distributed filesystems or warehouses; Deequ does not replace the work of operating a compatible Spark environment.

Beyond individual checks, example workflows cover profiling, storing and querying metrics, anomaly detection over time, automatic constraint suggestions, and incremental metric computation. Together these can support recurring quality monitoring, though teams must incorporate the workflows into their own Spark jobs. DQDL offers declarative rules for counts, completeness, uniqueness, statistics, schema matching, freshness, and custom SQL, giving teams another way to express validation requirements.

Row-level evaluation can identify records that pass or fail supported rules, which is useful when a pipeline needs to isolate problematic rows. Dataset-level checks such as RowCount and Mean are skipped in that mode, so row-level output cannot stand in for every aggregate validation.

Deequ releases are tied to specific Spark versions: the project lists Spark 3.1 through 3.5 for Deequ 2.x, and releases from 2.1.0 require Java 11. Maven and sbt dependency examples are provided, but selecting a matching release is an essential setup step. Scala, Java, DQDL, and SQL are supported test languages; Python users can turn to PyDeequ, a separate Python API for Deequ.

Pricing

Deequ is an Apache 2.0 open-source library, priced at free. There is no paid tier to unlock its listed data-quality checks or schema migration tests. The trade-off is that the library requires Apache Spark, and its release must match the Spark version in use.

Platforms

Deequ is available for API, Linux, macOS, self-hosted, and Windows environments. It runs as a Spark library distributed through Maven artifacts, with sbt dependency examples as well. Git is the supported VCS, and pre-commit scanning is supported; CI/CD scanning, pull-request scanning, and push protection are not.

Who it's for

Deequ is a strong fit for Spark teams that want configurable checks, profiling, and metrics workflows without adopting a paid platform. Custom detection rules and DQDL can help teams express their own data constraints, while schema migration tests suit workflows where schema changes need validation. It is less suitable for teams without Spark or those seeking built-in CI/CD or pull-request scanning.

Pros and cons

Broad validation coverage: checks include common completeness, uniqueness, value, pattern, count, and quantile expectations.

Designed for large-scale data: Spark execution targets datasets with billions of rows in distributed storage environments.

Multiple monitoring workflows: profiling, metric persistence, anomaly detection, suggestions, and incremental computation go beyond one-off checks.

Version coupling: Spark compatibility must be matched, and newer releases impose Java 11 as an additional requirement.

Aggregate checks have a row-level limit: RowCount and Mean are skipped during row-level evaluation.

No CI/CD or pull-request scanning: teams needing those scanning modes must look elsewhere.

Alternatives

Atlas is worth considering when database migration tooling is the priority; it has a free plan and free trial, with an open-core Apache 2.0 engine and advanced features available in a proprietary edition. DataKitchen TestGen may suit teams seeking a freemium database-testing option with a free forever open-source tier capped at one user, one connection, and one project, while allowing unlimited tables and data volume.

Great Expectations is another freemium choice: its Developer plan allows up to five data assets under test per month and three users, with unlimited rows per asset. Redgate SQL Provision is a paid option for provisioning or masking production data, with capacity tiers based on total production data volume. Bytebase Enterprise offers a free Community plan for up to 20 users and 10 database instances, so it may fit teams prioritizing database-instance management.

QuerySurge is a paid alternative with a free trial and user-pack plans, while Soda offers a free tier with pipeline testing, metrics observability, and alerting and ticketing integrations. ContextQA Database Testing is a paid, usage- and outcomes-based option sized to the testing footprint.

For broader directories, see Database Testing Tools and Secrets Scanning Software.

Verdict

Choose Deequ if your team already operates Apache Spark and needs a free, extensible way to validate and profile large datasets. Its varied checks and monitoring examples are the main draw; the dependency on Spark version alignment and the lack of CI/CD or pull-request scanning are the clearest reasons to choose another tool.

Verdict

Deequ offers a broad set of data checks and profiling tools for Spark datasets. Version matching and Spark dependency are important setup considerations.

Where Specifiction places it

Alternatives to Amazon DeequAll alternatives →