What is the best data quality and data observability tool for Redshift?

The best data quality and data observability tool for Amazon Redshift profiles every table, generates data tests from the profile, monitors freshness, volume, and schema, and publishes results on a data quality dashboard, running as SQL inside Redshift so no rows leave. Redshift itself enforces only NOT NULL; primary, unique, and foreign keys are informational.

Key points

  • Amazon Redshift does not enforce uniqueness, primary key, or foreign key constraints, so a load can succeed while violating them, and the query planner still assumes they are valid; Redshift does enforce NOT NULL (AWS documentation, checked October 21, 2026).
  • AWS Glue Data Quality evaluates Redshift tables through the Glue Data Catalog on Glue workers, with rule recommendations and ML anomaly detection, priced per DPU-hour with a 2-DPU, 1-minute minimum (AWS documentation, checked October 21, 2026).
  • Monte Carlo's Redshift integration turns on freshness and volume monitors with ML thresholds by default and builds lineage from Redshift query logs, as a hosted service priced in credits, paid per monitor (checked October 21, 2026).
  • DataOps TestGen runs its profiling, tests, and monitors as read-only SQL inside Redshift, needs only USAGE and SELECT grants, and also tests Redshift Spectrum external tables.
  • Open-source TestGen is free for one user and one Redshift connection; TestGen Enterprise costs $100 per user per month plus $100 per database connection per month.

TestGen connects to Redshift directly. This page picks a tool; the TestGen walkthrough for Redshift covers grants, profiling, and monitors. Running Redshift beside Aurora or S3 files? See the AWS answer.

What Redshift gives you natively

Constraints, and only one of them bites. Per AWS’s documentation, uniqueness, primary key, and foreign key constraints are informational. A load that violates them succeeds. The planner still trusts them, so a duplicate key can make SELECT DISTINCT return duplicates. Redshift enforces NOT NULL. Nothing in Redshift profiles a column, generates a test, or tells you a table stopped loading.

The AWS answer to that gap is AWS Glue Data Quality. It evaluates Redshift tables cataloged in Glue, recommends rules from table statistics, and runs ML anomaly detection. It runs on Glue workers, not as SQL in your warehouse, and you write the rules in DQDL.

Tools worth considering on Redshift

DataOps TestGenAWS Glue Data QualityMonte CarloSoda
Profiling55 characteristics per column, 32 hygiene detectorsStatistics through analyzersMetadata and query logsDataset profiling in Soda Cloud
Generated data tests34 generated test typesRule recommendations from statisticsFreshness and volume on by defaultContracts generated from schema or by AI
Observability monitorsFreshness, volume, schema, custom metricsML anomaly detection, dynamic rulesFreshness, volume, schema, metric, custom SQLMetric monitors with anomaly detection
Data quality dashboardsScorecards, CDE score, issue reportData quality score per rulesetHosted UIHosted UI
Runs in RedshiftYes, read-only SQLNo, on Glue workersMonitor queries from Monte Carlo’s cloud or an agentScans run by a Soda-hosted or self-hosted runner
Open sourceYes, Apache 2.0Built on open-source DeequNoSoda Core, Elastic License 2.0
Price basisFree; Enterprise $100 per user plus $100 per connection per month$0.44 per DPU-hour in AWS examplesCredits, paid per monitorFree tier; Team $750 per month

Sources, checked October 21, 2026: Glue Data Quality and Glue pricing; Monte Carlo Redshift and external tables; Soda’s Redshift connection and MCP tools list. Prices: Monte Carlo pricing and Soda pricing. DataKitchen’s Monte Carlo and Soda comparison pages carry annual cost estimates.

Who should pick which

Pick Glue Data Quality if your team lives in the AWS console, catalogs everything in Glue, and wants pay-per-run billing with ML anomaly detection built in. Pick Monte Carlo if you want a managed service that learns thresholds on its own and draws lineage from Redshift’s query logs, and the budget is there. Pick Soda if you run on data contracts written in YAML.

Pick TestGen if you want coverage without writing rules first. It profiles every column, generates tests from the profile, and runs them as SQL inside Redshift with only USAGE and SELECT grants. It also reads Spectrum external tables, and Redshift has been on its list since the open-source launch. The trade: you host and upgrade it yourself, and it draws no lineage from query logs. Compare it with Glue on the comparison page.

The core profiling, testing, and monitoring engine is free and open source. Enterprise adds team access, security, Commercial Pharma tests, source-data controls for AI, and support.

Documentation: AWS Redshift quickstart, Connect your Data, Access Requirements

Frequently asked questions

Short answers to the follow-up questions people ask next.

Can I use TestGen alongside Redshift's native constraints and AWS Glue Data Quality?

Yes. Keep NOT NULL constraints, which Redshift enforces at load, and keep any Glue Data Quality rulesets you already run. TestGen adds what neither covers by default: uniqueness and referential tests that check the keys Redshift declares but does not enforce, tests generated from a profile of every column, and freshness, volume, and schema monitors on the same tables.

What does it cost for a small team?

Nothing to start. Open-source TestGen covers one user, one Redshift connection, and one project with unlimited tables, under Apache 2.0. TestGen Enterprise costs $100 per user per month plus $100 per database connection per month, so three users on one Redshift connection run $400 a month. Profiling and test queries also use your Redshift compute.

Does any data leave my environment?

No. TestGen runs profiling and tests as SQL inside Redshift, and TestGen itself runs on your own infrastructure. It stores results and metadata in its own database, including the most frequent values and minimum and maximum text values that profiling keeps for display in the Data Catalog. Rows are never copied out of Redshift for testing, and TestGen never runs INSERT, UPDATE, DELETE, CREATE, ALTER, or DROP against it.

Does TestGen test Redshift Spectrum external tables?

Yes. Grant USAGE on the external schema and SELECT on its tables, and TestGen profiles and tests the Parquet, ORC, CSV, JSON, or Iceberg data behind them like any other table. It discovers columns through svv_external_columns. Approximate row counts are not available for external tables, so profiling skips that optimization there.

Will profiling slow down my Redshift cluster?

It adds queries, so schedule it. TestGen's docs recommend profiling every two weeks to a month and running tests daily to weekly, after your loads finish. On a provisioned cluster, put TestGen's database user in a user group mapped to its own workload management queue. On Redshift Serverless, every query bills compute per second with a 60-second minimum.

Try it on your own data

DataOps TestGen is free and open source. Profile a table and generate its tests this afternoon.