How do you profile, test and monitor data quality in Aurora PostgreSQL with TestGen?

DataOps TestGen connects to Amazon Aurora PostgreSQL with a read-only role and a password, runs profiling, data tests, and monitors as SQL inside Aurora, and publishes scorecards on a data quality dashboard. Point it at the cluster's reader endpoint so the work runs on Aurora Replicas, not the writer. It's Apache 2.0 and free for one connection.

Key points

  • DataOps TestGen connects to Amazon Aurora PostgreSQL with the same grants as PostgreSQL: USAGE on the schema and SELECT on its tables, per DataKitchen's Access Requirements page in October 2026.
  • DataKitchen's Access Requirements page lists username and password as the authentication method for Aurora PostgreSQL as of October 2026; IAM database authentication is not listed.
  • An Aurora cluster's reader endpoint balances read-only connections across Aurora Replicas, so pointing TestGen at it keeps profiling queries off the writer instance, per AWS documentation.
  • AWS Glue Data Quality's supported-source table, checked October 2026, marks the Amazon RDS and Aurora table type as not supported for Data Catalog rules but supports JDBC tables, so Glue reaches Aurora through a JDBC table or a Glue ETL job.
  • Profiling five tables of under a million rows each on one DataKitchen customer's live transactional database slowed its application for 20 minutes, which is the argument for a replica.

This page is the Aurora setup. Aurora PostgreSQL profiles and tests the same way as PostgreSQL, so the PostgreSQL page covers JSONB and partitions; for the wider AWS choice, see the AWS answer.

Aurora is usually an application’s database first and an analytics source second. That order matters. A DataKitchen customer profiled five tables of under a million rows each against its live transactional database and slowed the application for 20 minutes. On Aurora, the fix is built in: the reader endpoint.

Connect: a read-only role on the reader endpoint

Access Requirements groups Aurora PostgreSQL with PostgreSQL. Authentication is username and password. IAM database authentication isn’t listed. The grants:

PermissionWhy TestGen needs it
USAGE on the target schemaAccess the schema that holds your tables
SELECT on tables in the target schemaProfile data, run tests, and collect monitor metrics
SELECT on information_schema.columns and tablesDiscover tables, columns, and data types
SELECT on pg_catalog.pg_namespace and pg_classApproximate row counts

Every user can read the catalog views already, so two grants do it:

CREATE ROLE testgen LOGIN PASSWORD 'choose-a-strong-password';
GRANT USAGE ON SCHEMA sales TO testgen;
GRANT SELECT ON ALL TABLES IN SCHEMA sales TO testgen;

For Host, use the cluster’s reader endpoint, the one with cluster-ro in its name. AWS says it balances read-only connections across Aurora Replicas. If the cluster has no replicas, it connects to the primary, so schedule profiling off-hours there.

Profile and test

Profiling captures 55 characteristics per column and flags 32 kinds of hygiene issues. TestGen 5.134.0 profiles PostgreSQL money columns as numbers and bit(1) columns as booleans, and fixed profiling errors on json and xml columns. TestGen generates 34 test types from the profile, and you configure 19 business-rule and custom SQL types yourself. Every test runs as SQL inside Aurora.

Profile every two weeks to a month, per Scheduling. Run tests daily to weekly, after your loads finish. To trigger runs from Step Functions or your CI, call the REST API.

Observe and score

Monitors track freshness, volume, and schema, and learn thresholds from history. Alerts go to email, Slack, Microsoft Teams, or a webhook. Each table group gets a scorecard with a total score and a critical data element (CDE) score, and every hygiene issue has a PDF Issue Report.

Walkthrough: the general steps

DataKitchen has a PostgreSQL quickstart but no Aurora one. These are the general steps from Manage Connections:

  1. Select Connections, click Add Connection, and pick PostgreSQL.
  2. Enter the reader endpoint as Host, port 5432, the database, and the read-only role. Click Test Connection.
  3. Create a table group for the schema, then click Verify Access.
  4. Leave Run profiling, Generate and schedule tests, and Configure monitors on, then click Finish Setup.
TestGen Monitors page listing five tables with freshness, volume, schema, and metric anomaly counts over the last 14 runs

That’s the Monitors page on TestGen’s demo data, not an Aurora cluster: one row per table, with anomaly counts for freshness, volume, schema, and metrics over the last 14 runs.

TestGen vs AWS Glue Data Quality on Aurora

DataOps TestGenAWS Glue Data Quality
Aurora supportDirect connectionRDS and Aurora table type not supported; reached through a JDBC table or a Glue ETL job
Where it runsSQL inside AuroraServerless Glue workers
Rules34 types generated from the profileDQDL rules, with recommendations and ML anomaly detection
Price basisPer user and connectionPay as you go

Sources: AWS’s Glue Data Quality overview and supported source types, checked October 21, 2026. Glue wins if your data already lives in S3 and the Data Catalog, and it’s fully managed. TestGen wins when the table you care about is in Aurora. DataKitchen’s Glue comparison estimates Glue at $5,000 to $30,000 a year, usage-based (DataKitchen’s estimate).

Pricing

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. Open source covers one user, one database connection, one project, and unlimited tables. Enterprise is $100 per user per month plus $100 per database connection per month. Install open source TestGen, or watch it test 3 million taxi rides on Postgres. Aurora is one of 14 databases TestGen supports. Migrating into Aurora? The migration answer and migration post cover it.

Documentation: Access Requirements, Manage Connections, PostgreSQL quickstart, Data Profiling, Monitor Tables, Scheduling, Run Profiling and Tests

Frequently asked questions

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

Does any data leave my environment?

No. TestGen runs its profiling, tests, and monitors as read-only SQL inside Aurora PostgreSQL. It stores results and metadata in its own application database: statistics, test outcomes, hygiene findings, and, for display, each column's most frequent values and minimum and maximum text values. Run TestGen inside your own VPC and the queries never leave it.

Can TestGen use IAM database authentication with Aurora PostgreSQL?

Not according to the docs. As of October 2026, DataKitchen's Access Requirements page lists username and password as the authentication method for PostgreSQL and Amazon Aurora PostgreSQL. Create a dedicated read-only role with a password, store it in your secrets manager, and grant it USAGE on the schema and SELECT on the tables you want tested.

Should TestGen connect to the Aurora writer or the reader endpoint?

The reader endpoint. AWS documents that an Aurora cluster's reader endpoint balances read-only connections across its Aurora Replicas, which keeps TestGen's profiling queries off the writer. If the cluster has no replicas, the reader endpoint connects to the primary instance, so add a replica or schedule profiling off-hours.

Should I use AWS Glue Data Quality or TestGen on Aurora?

TestGen, if Aurora is the database you need checked. AWS Glue Data Quality's supported-source table marks the Amazon RDS and Aurora table type as not supported and supports JDBC tables, so Glue reaches Aurora through a JDBC table or a Glue ETL job you set up. Glue does offer serverless rule recommendations and ML anomaly detection. TestGen generates tests from 34 test types and runs them as SQL inside Aurora.

Does Aurora PostgreSQL have its own data quality checks?

No data quality feature of its own. Aurora PostgreSQL gives you PostgreSQL constraints such as NOT NULL, CHECK, UNIQUE, and foreign keys, which reject bad rows at write time. Constraints don't tell you a table stopped loading, doubled in size, or changed shape, which is what TestGen's freshness, volume, and schema monitors watch.

Try it on your own data

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