A profile is the first thing you should run on a new table, and the thing most teams run once and forget. The tools differ less on what they measure than on what happens after.
DataKitchen makes DataOps TestGen, which is in the comparison below. The counts are ours. Check them against the tools themselves.
The open-source profilers
Counts are from DataKitchen’s comparison of open-source profilers, published December 2025 and updated September 2026. Counts marked “about” are DataKitchen’s estimates. TestGen’s hygiene count is from its product page as of October 2026.
| Tool | Profile descriptions | Automatic hygiene checks | Generates tests? | Best fit |
|---|---|---|---|---|
| DataOps TestGen | 55 per column | 32 detectors | Yes, 34 test types | Profiling every table in a database, then testing it |
| YData-Profiling | About 35 to 45 | 0 | No | A rich report on one table, in a notebook |
| DataCleaner | About 20 or more | 0 | No | Interactive profiling |
| OpenRefine | About 15 | 0 | No | Cleaning up a messy file by hand |
| Great Expectations (GX Core) | About 10 to 15 | 0 | No; suggests expectations you write | Bootstrapping a hand-written expectation suite |
| Deequ | About 10 to 15 | 0 | No | Spark DataFrames at scale |
| Aggregate Profiler | About 10 | 0 | No | Lightweight checks |
| Metabase (open source) | About 5 to 10 | 0 | No | A BI tool with column summaries |
Great Expectations’ profiler survives in GX Core, which Fivetran now stewards, while GX Cloud, the paid layer, shut down June 1, 2026.
Pick on what happens after the profile
Every tool in that table describes data.
That’s the job.
The gap is what comes next. A YData-Profiling report tells you a column is 40% null. Somebody then has to read it, decide that’s wrong, write a rule, and schedule it. In a team of three, that step doesn’t happen for table number 200.
DataKitchen’s first use case for data observability is evaluating a new data source, and it names what to look for: delimited data embedded in columns, leading and trailing spaces, pattern inconsistencies within a column, multiple data types under one column name, non-standard blank values, quoted values, and duplicates. A profiler that only reports those leaves you a to-do list. One that turns them into checks leaves you a test suite.
Profiling also comes before any threshold, because you can’t set a sensible limit on a column you’ve never measured. And the volume rules out doing it by hand. The coverage guide sets a floor of two tests per table and two per column, which across a few hundred tables is thousands of tests.
A worked example
In DataKitchen’s NYC taxi test, TestGen profiled all 2,964,624 yellow taxi rides from January 2024 in 1 minute 48 seconds. That month held fares as low as negative $899 and one trip distance of 312,722 miles.
The same test shows the limit of profiling. Tests generated from a 300,000-row sample set the minimum fare at negative $367, because that was the lowest fare present. A profile learns what the data is. It doesn’t know what the data should be. Business rules still need a person, or an AI reading the profile with a person checking its work.
When your assistant needs the profile
Most profilers write an HTML report or a notebook cell. Claude, Cursor, or an agent can’t read either, so it guesses from whatever you paste. TestGen’s open-source MCP server exposes profiling results, hygiene findings, and test history through 96 tools, each running under the connected user’s role.
Open-source TestGen covers one user, one database connection, and one project. For the full field of free data quality tools, see the open-source tools answer.
Sources
| Source | What it covers |
|---|---|
| The 2026 open-source data profiling comparison | Every profiler above, with DataKitchen’s counts and verdicts |
| DataOps TestGen | Current profiling, hygiene, and test-type counts |