Data Profiling Tools: The Best Data Profiling Software Compared for 2026
Fourteen profilers checked against primary sources rather than marketing pages. What each one actually measures, where the compute runs, which vendors publish a price, and the two packages every roundup still recommends under names they no longer use.
Read-only connection. Datatrail never moves or mutates your data.
In short
Data profiling tools examine a dataset and report what is really in it: actual data types, null and duplicate rates, distinct counts, value distributions, patterns, and the relationships between columns. The main options in 2026 are the open-source libraries fg-data-profiling, dbt-profiler, and Soda Core; the warehouse-native features in Snowflake, Databricks, BigQuery, and AWS; the cloud services AWS Glue DataBrew and Google Knowledge Catalog; the enterprise quality platforms Informatica, Ataccama, Qlik Talend, IBM, and Microsoft Purview; and Datatrail, which profiles continuously and joins each profile to the lineage graph. The choice comes down to three things: whether you need a one-off report or a series over time, whether the data can leave the warehouse, and whether you need relationship discovery across tables.
Last updated August 2026
Side by side
Data profiling software compared
| Tool | Best for | What it profiles | Where it runs | Pricing |
|---|---|---|---|---|
| Datatrail | Warehouse teams that want profiles tied to what each column feeds | Column statistics, freshness, volume, schema drift | Read-only connection, compute stays in your warehouse | Published, self-serve |
| fg-data-profiling | One-off exploratory profiling of a pandas or Spark dataframe | Full EDA report: types, distributions, correlations, warnings | Python library, in your process | Free, MIT |
| Soda | Teams that want profiling and checks in one declarative YAML file | Column profiles, distributions, plus declarative checks | CLI or library against the warehouse | Free tier, Team plan published |
| dbt-profiler | dbt projects that want profile stats as a model or in docs | Per-column nulls, distinct counts, min, max, avg, std dev | dbt macro, SQL in the warehouse | Free, open source |
| Great Expectations | Writing and running data quality assertions, not profiling | Assertions you write, not automatic profiles | Python library, in your pipeline | Free, Apache 2.0 |
| AWS Glue DataBrew | AWS estates wanting no-code profile jobs on S3 and Redshift | Types, completeness, uniqueness, distributions, correlations | Managed AWS jobs | Published: $0.48 per node hour |
| Google Knowledge Catalog | BigQuery estates wanting scheduled profile scans | Column stats, distributions, quality scans | Managed scans on BigQuery | Published: $0.089 per DCU-hour |
| Databricks Lakehouse Monitoring | Databricks teams wanting profiles tracked over time | Per-column stats written to a metrics table | Managed jobs on Databricks | Metered compute, no separate license |
| Snowflake data metric functions | Snowflake shops wanting scheduled column metrics natively | Built-in and custom metrics on a schedule | Serverless compute in Snowflake | Metered, Enterprise Edition required |
| Informatica from Salesforce | Large estates already standardized on Informatica | Column, cross-column and cross-source dependency profiling | SaaS plus a customer-installed Secure Agent | No published pricing |
| IBM InfoSphere Information Analyzer | Mainframe and legacy estates in a formal data program | Column, primary key, natural key, cross-domain analysis | Self-hosted or Cloud Pak for Data | No published pricing |
| Ataccama ONE | Quality-led governance programs wanting profiling built in | Automated profiling with AI-suggested quality rules | SaaS or self-hosted | No published pricing |
| Qlik Talend Data Quality | Talend estates, but see the Open Studio warning below | Column profiling, pattern and semantic discovery | Cloud or self-managed | No published pricing |
| Microsoft Purview | Microsoft estates wanting profiling inside governance | Data quality scans and profiling on governed assets | SaaS plus integration runtime | Published rates |
Capabilities reflect each vendor's own documentation, package metadata, and published pricing as checked on 5 August 2026. Only figures a vendor publishes itself appear anywhere on this page. Confirm current details directly before you buy.
The detail
Every data profiling tool, and who each one is really for
Datatrail
Published, self-serveWarehouse teams that want profiles tied to what each column feeds
Datatrail profiles every column in the warehouse continuously rather than on demand, and attaches the result to a lineage graph. It connects to Snowflake, BigQuery, Redshift, Databricks, or Postgres with a read-only role, parses query history alongside your dbt manifest, and tracks null rates, distinct counts, row volumes, and load recency per column over time so a change in the shape of the data raises an alert instead of waiting for someone to run a report. The difference from a classic profiler is the second half: each profile is joined to the downstream models, exposures, and dashboards that read the column, so a jump in nulls arrives ranked by what it breaks. It is not an exploratory data analysis tool. If you want a rich HTML report on a CSV you were handed this morning, use one of the open-source libraries below.
fg-data-profiling
Free, MITOne-off exploratory profiling of a pandas or Spark dataframe
This is the package the whole category still calls pandas-profiling, and its name has now changed twice. It became ydata-profiling in 2023, and in April 2026 it was renamed again to fg-data-profiling, with the repository moving to the Data-Centric-AI-Community organization. The PyPI listing for the old ydata-profiling package now carries an explicit notice that it will no longer receive updates or bug fixes. On capability it remains the best free exploratory profiler there is: one line of code produces an HTML report with inferred types, missing-value maps, distributions, correlations, interactions, and automatic warnings, for pandas and Spark dataframes. Two things to weigh. It loads data into your process, so it profiles a sample rather than a billion-row warehouse table, and the renamed package has published only two releases, both on 22 April 2026, with no repository commits since. Check its current state before you standardize on it.
Soda
Free tier, Team plan publishedTeams that want profiling and checks in one declarative YAML file
Soda splits the difference between profiling and testing. SodaCL is a YAML checks language that includes profiling directives, so you can ask for column profiles and distribution statistics in the same file that holds your pass or fail assertions, and it pushes the work down into the warehouse rather than pulling rows out. Soda Core is open source and actively released, with 4.19.0 published on 28 July 2026. Soda is also one of the few vendors in this whole space that publishes prices: a free tier and a Team plan listed at $750 per month, with enterprise quoted. The trade is that profiling is a feature of a testing product rather than the point of it, so the reports are less exploratory than a dedicated profiler and more oriented toward monitoring the same columns repeatedly.
dbt-profiler
Free, open sourcedbt projects that want profile stats as a model or in docs
A small dbt package that generates profile statistics for a relation as SQL, so the profile is computed by the warehouse and can be materialized as a model or dropped straight into your dbt docs. For a team already living inside dbt this is the lowest-friction option on the page: no new service, no data leaving the warehouse, and the output sits in version control with everything else. Keep expectations proportional to its size. It is a community package with a small maintainer base, last updated in February 2026, it profiles a relation you point it at rather than the whole estate, and there is no UI, no history, and no alerting. It answers what does this table look like right now, not what changed since last week.
Great Expectations
Free, Apache 2.0Writing and running data quality assertions, not profiling
Great Expectations appears on nearly every data profiling list, and that placement is now out of date. The profiling helpers those lists point at, the UserConfigurableProfiler and the onboarding data assistants, belonged to the 0.18 line. GX 1.0 shipped in August 2024 as a hard breaking change, and one of its own changelog entries records removing all mentions of profilers from the public docs. What GX is today is an excellent assertion framework: you declare Expectations, group them into suites, and run them through Checkpoints. That is validation, which starts from a rule you already know. Profiling is the step before it, which is how you find out what the rules should be. Ownership also split in 2026, with FICO acquiring GX Cloud and Fivetran becoming steward of GX Core, so evaluate the open-source library rather than the hosted product.
AWS Glue DataBrew
Published: $0.48 per node hourAWS estates wanting no-code profile jobs on S3 and Redshift
DataBrew is the no-code option inside AWS. A profile job points at a dataset in S3, Redshift, or a JDBC source and produces a full statistical summary without any code: inferred types, missing and duplicate counts, value distributions, correlations, and standard summary statistics, with results written back to S3 and viewable in the console. Its real advantage is that it publishes prices, which almost nothing else in this category does. Interactive sessions are $1.00 per thirty minutes and jobs run at $0.48 per node hour, billed by the minute, so you can model the cost of profiling your estate before talking to anyone. It is AWS-only, and it is a batch job rather than continuous monitoring, so pair it with something that watches for drift if that is the actual need.
Google Knowledge Catalog
Published: $0.089 per DCU-hourBigQuery estates wanting scheduled profile scans
Google runs data profiling as a scheduled scan against a BigQuery table, publishing per-column statistics and feeding the results into data quality rule recommendations. Note the name: this was Dataplex Universal Catalog until 10 April 2026, when it was renamed Knowledge Catalog, with the API, CLI, and IAM names left unchanged and the billing SKUs still saying Dataplex. Pricing is published and specific, which is welcome, but read the tier carefully because it catches people out. Profiling sits in the premium processing tier at $0.089 per DCU-hour, and the 100 free DCU-hours per month apply only to the standard tier at $0.06. Profiling has no free allowance at all, and consumption scales with rows, columns, bytes scanned, and how often you schedule the scan.
Databricks Lakehouse Monitoring
Metered compute, no separate licenseDatabricks teams wanting profiles tracked over time
The most complete native profiler of the four platforms, largely because it stores history instead of printing a report. A monitor writes a profile metrics table you can query like any other, holding count, num_nulls, avg, min, max, stddev, distinct_count, median, a 1,000-value quantile array, num_zeros, num_nan, the percent variants of those, string length statistics, and the top 100 frequent items per column. Three profile types cover the common shapes: Snapshot for a table as it stands, TimeSeries for metrics sliced by a timestamp column and granularity, and InferenceLog for model monitoring, which adds accuracy and fairness metrics. Because the output is a table, drift is a query rather than a feature request. It requires Unity Catalog and stops at the Databricks boundary.
Snowflake data metric functions
Metered, Enterprise Edition requiredSnowflake shops wanting scheduled column metrics natively
Snowflake exposes profiling as data metric functions, which are metrics attached to a table or column and evaluated on a schedule, with results landing in an event table you can query and alert on. System functions cover null counts, duplicates, uniqueness, freshness, and row counts, and you can write your own in SQL. Four details decide whether this is enough. It requires Enterprise Edition or above. Creating a DMF or calling one inside a SELECT is not billed, and only a scheduled DMF meters serverless compute. The default schedule is hourly. There is a hard cap of 50,000 DMF associations per account, and DMFs cannot be set on a hybrid table or a stream. Inside those limits it is the cheapest credible starting point for a Snowflake-only team.
Informatica from Salesforce
No published pricingLarge estates already standardized on Informatica
The deepest profiling engine in the category, and the oldest. Informatica Data Quality does column profiling, cross-column dependency and key discovery, and cross-source relationship discovery, which is the analysis that finds an undeclared foreign key between two systems nobody documented. If your problem is a migration where the source schemas are a mystery, this class of tool exists for exactly that. Salesforce completed its acquisition on 18 November 2025, and the product now ships as Informatica from Salesforce inside IDMC. Pricing runs on consumption units called IPUs; the model is documented but Informatica publishes no dollar rate per IPU. Hybrid and on-premises sources need a Secure Agent sized at 16GB of RAM minimum, so factor the infrastructure in.
IBM InfoSphere Information Analyzer
No published pricingMainframe and legacy estates in a formal data program
The reference implementation of classical data profiling, and still the answer for the estates it was built for. Information Analyzer performs column analysis, primary key analysis, natural key analysis, and cross-domain analysis to find overlapping and redundant data across sources, with the results feeding a formal data quality program. It reaches sources the cloud-native tools do not, including mainframe and long-lived enterprise databases, which is usually the deciding factor. It is heavyweight to deploy and operate, the interface shows its age, and there is no published pricing. Choosing it in 2026 for a Snowflake and dbt stack would be an odd decision; choosing it for a thirty-year-old estate under audit is entirely reasonable.
Ataccama ONE
No published pricingQuality-led governance programs wanting profiling built in
Ataccama bundles profiling, data quality, master data management, and governance into one platform, and profiling is the front door: it scans sources, builds profiles, and proposes quality rules from what it finds rather than making you write them from a blank page. That autogeneration is the genuine differentiator when nobody on the team can yet say what good looks like. It runs as SaaS or self-hosted, and it markets a Leader placement in the 2026 Gartner Magic Quadrant for Augmented Data Quality Solutions. It publishes no pricing, and the third-party annual figures circulating for it do not come from Ataccama, so do not plan a budget around them. It is a platform purchase, not a tool you adopt on a Tuesday.
Qlik Talend Data Quality
No published pricingTalend estates, but see the Open Studio warning below
Talend built a well-regarded profiling and cleansing suite, and it still exists inside Qlik, which acquired Talend in May 2023. The warning is about the free edition that open-source profiling lists still recommend. Talend Open Studio reached end of life at version 7.3 on 31 January 2024, and the downloads came down that day. We followed the old product URL on 5 August 2026 and it now redirects to a commercial Qlik Talend Cloud page. There is no free Talend edition to download, whatever the roundups say. The paid product is capable, profiling is genuinely good, and Qlik markets a Leader placement in the 2026 Gartner Magic Quadrant for Augmented Data Quality Solutions. It publishes no pricing.
Microsoft Purview
Published ratesMicrosoft estates wanting profiling inside governance
Purview folds profiling into its data quality capability inside Unified Catalog, so profiles run against assets that are already governed rather than as a standalone exercise. If your estate is Microsoft, that shared control plane across catalog, quality, and compliance is the argument, and Microsoft is one of the very few vendors here that publishes exact metered rates. Governance is $0.0165 per governed asset per day plus $15, $60, or $240 per data governance processing unit, and Microsoft documents roughly 0.02 processing units per simple rule run against a million rows. A billing detail that saves real money: an asset only counts once it is linked to a governance concept, so assets merely scanned into the Data Map are not billed. Keep the three Purviews apart, since the classic Data Catalog is closed to new customers and Azure Data Catalog was retired in May 2024.
The job to be done
What data profiling actually measures
Every tool on this page claims to profile data, and they mean different amounts by it. The classical literature splits profiling into three kinds of discovery, and the modern tools add a fourth. Knowing which of the four you need removes most of the shortlist before you book a single demo.
| Type | Statistics produced | The question it answers |
|---|---|---|
| Structure discovery | Data types, lengths, formats, patterns, min and max | Is this column shaped the way the schema claims? |
| Content discovery | Null rate, distinct count, cardinality, frequency, distribution | What values are actually in here, and how are they spread? |
| Relationship discovery | Key candidates, foreign keys, overlaps, cross-column dependencies | How do these columns and tables relate to each other? |
| Drift over time | Change in any of the above, per column, per run | What is different about this column since last week? |
Structure discovery
The first pass checks that the declared structure matches reality. It infers the actual type rather than trusting the DDL, measures string lengths, and extracts regular patterns so that a column of phone numbers holding four different formats becomes visible. This is the pass that catches numbers stored as text, dates in three notations, and the trailing whitespace that quietly breaks a join.
Content discovery
The second pass looks at the values themselves: how many are missing, how many are unique, which appear most often, and what the distribution looks like across quantiles. This is where most real defects surface. A status column that should hold six values holding nineteen, a supposedly mandatory field that is 12 percent null, an amount column whose maximum is three orders of magnitude above its ninety-ninth percentile.
Relationship discovery
The third pass is the expensive one and the one most lightweight tools skip. It looks across columns and across tables to find primary key candidates, undeclared foreign keys, functional dependencies, and overlapping domains. It is what you need before a migration or a consolidation, and it is the main reason the heavyweight enterprise profilers still exist.
Drift over time
The modern addition, and the one that separates a profiling report from a monitoring system. A single profile is a photograph. Storing profiles run after run turns them into a series, so a null rate climbing from 0.1 percent to 4 percent raises an alert instead of sitting in an HTML file nobody reopened. Most classical profilers do not keep history, and most monitoring tools do.
The practical consequence is that the lightweight tools cover the first two types well and the third barely at all. A Python profiler will tell you everything about a column and almost nothing about how it relates to a table in another schema. Relationship discovery across sources is genuinely hard, it is expensive to compute, and it is the reason the heavyweight enterprise platforms still win migration projects thirty years in.
The fourth type is the newest and the one that changes how the tool gets used. A profile you run once answers a question you already had. A profile stored every day answers questions you have not thought to ask yet, because a statistic moving is itself the signal. That is where profiling stops being an analysis task and becomes data observability, and it is why the same statistics show up in both categories.
Two different things
Data profiling is not query profiling
This is worth two minutes because searches for profiling return both, and they are unrelated jobs with the same name.
Data profiling analyzes the contents of a table. It answers what is in this column, how much of it is missing, how many distinct values there are, and what shape the distribution has. Everything on this page does that.
Query profiling analyzes the execution of a statement. It answers why this query took nine minutes, which operator consumed the time, how many bytes were scanned, and whether the plan spilled to disk. Snowflake Query Profile, EXPLAIN ANALYZE in Postgres, the MySQL slow query profiler, and the Databricks Spark UI are all query profiling tools. None of them will tell you that a column is 12 percent null.
The confusion is expensive in one specific direction. Teams investigating a wrong number sometimes reach for the query profiler, find the query is fast and correct, and conclude nothing is broken, when the actual problem is that an upstream column started arriving empty three days ago. The query did exactly what it was told with data that had already gone bad. That failure is a profiling and lineage problem, and no execution plan will surface it.
If you landed here wanting faster queries rather than better data, your platform's own documentation on execution plans is the right place to go. If you want to know whether the data feeding those queries is sound, keep reading.
Check the package index
The open-source profiling situation, checked rather than repeated
Open-source profiling is a legitimate choice and two of the options are genuinely good. The problem is that almost every published list recommending them is copied from an older list, so here is what the package index and the repositories actually said on 5 August 2026.
The best-known profiler has been renamed twice, and the roundups have caught neither change. It started as pandas-profiling, whose final release was in January 2023 and whose PyPI summary now reads that the package is deprecated. It became ydata-profiling, which is the name nearly every current article uses. In April 2026 it was renamed again to fg-data-profiling, and the repository moved to the Data-Centric-AI-Community organization. The old ydata-profiling listing carries an explicit notice that it will no longer receive updates or bug fixes. If your requirements file pins either of the first two names, you are pinned to a package the maintainers have said they will not fix.
The capability is unchanged and still excellent: one line of code produces an HTML report covering inferred types, missing values, distributions, correlations, interactions, and automatic warnings, across pandas and Spark, under the MIT license, with about 13,700 stars on the repository. Two honest caveats. It profiles data loaded into your process, so on warehouse-scale tables you are profiling a sample and should say so in whatever you report. And the renamed package has published exactly two releases, 4.19.0 and 4.19.1, both on 22 April 2026, with no repository commits after that date, so check its current state before you standardize a team on it.
Great Expectations is not a profiling tool any more, and the lists have not caught that either. The profiling helpers those articles link to, the UserConfigurableProfiler and the onboarding data assistants, were part of the 0.18 line. GX 1.0 landed in August 2024 as a hard breaking change, and its own changelog records removing all mentions of profilers from the public documentation. GX today is an assertion framework, and a very good one. Just do not adopt it expecting the tool to tell you what is in your data; it expects you to already know and to declare it. We go deeper on that split in our Great Expectations alternative comparison.
There is no free Talend edition. Talend Open Studio still appears as the free open-source profiling option in most roundups. It reached end of life at version 7.3 on 31 January 2024 and the downloads were removed the same day. Following the old product URL on 5 August 2026 lands on a commercial Qlik Talend Cloud page. Qlik acquired Talend in May 2023, and the profiling capability now ships only in the paid product.
What is left, and genuinely healthy: Soda Core, which published 4.19.0 on 28 July 2026 and combines profiling directives with declarative checks in one YAML file, and dbt-profiler, a small community package that computes profile statistics as SQL inside your warehouse and drops them into dbt docs. Neither has a license fee. Both push compute into the warehouse rather than pulling rows out, which is the property that matters once tables get large. If you already run dbt, start with dbt-profiler before you evaluate anything commercial, and see our guide to the dbt dependency graph for how it fits alongside the rest of the project.
Before you buy anything
Your warehouse already profiles
All four major platforms now compute column statistics natively, and for a single-platform team that is often enough. It is always the right baseline to measure a purchase against, so here is what each one really covers and the limit that tends to surface after rollout rather than before.
Databricks Lakehouse Monitoring
The most complete of the four, because it keeps history. A monitor writes a profile metrics table holding count, null count, average, min, max, standard deviation, distinct count, median, a 1,000-value quantile array, zero and NaN counts, the percent variants, string length statistics, and the top 100 frequent items per column. Three profile types cover the usual shapes: Snapshot, TimeSeries sliced by a timestamp column, and InferenceLog for model monitoring. Because the output is an ordinary Unity Catalog table, detecting drift is a SQL query rather than a feature request. It requires Unity Catalog, and it stops at the Databricks boundary.
Snowflake data metric functions
Snowflake models profiling as metrics attached to a table or column and evaluated on a schedule, with results written to an event table you can query and alert on. System DMFs cover null counts, duplicates, uniqueness, freshness, and row counts, and custom ones are ordinary SQL. Enterprise Edition or above is required. Creating a DMF or calling it inside a SELECT is not billed, and only a scheduled DMF meters serverless compute, which makes ad hoc use effectively free. The default schedule is hourly, there is a cap of 50,000 associations per account, and DMFs cannot be attached to a hybrid table or a stream.
Google Knowledge Catalog
Profiling runs as a scheduled scan against a BigQuery table, producing per-column statistics that also feed automatic data quality rule recommendations. The service was renamed from Dataplex Universal Catalog on 10 April 2026, with API, CLI, and IAM names unchanged and billing SKUs still carrying the Dataplex name. Pricing is published, which is rare, but check the tier: profiling is premium processing at $0.089 per DCU-hour and the 100 free DCU-hours per month apply only to the $0.06 standard tier. Profiling has no free allowance, and consumption scales with rows, columns, bytes scanned, and scan frequency.
AWS Glue DataBrew
The no-code option in AWS. A profile job points at S3, Redshift, or a JDBC source and returns inferred types, missing and duplicate counts, distributions, correlations, and summary statistics, written back to S3 and rendered in the console. It publishes exact prices, at $0.48 per node hour for jobs and $1.00 per thirty-minute interactive session, billed by the minute, so you can model the cost of profiling your estate up front. It is a batch job rather than a continuous monitor, so nothing watches for drift between runs unless you schedule and diff them yourself.
The shared limitation is the platform boundary, and it bites harder in profiling than in most categories. Each of these profiles tables inside its own walls, which means it can tell you a column changed but not where the change came from or who is about to read it. If a Looker dashboard reads a Snowflake table populated from a Postgres source through an ingestion tool, no native profiler sees that path, and the null rate that appeared this morning was created two hops upstream. Platform paths are covered in Snowflake lineage, Databricks lineage, BigQuery lineage, and Redshift lineage.
Who will show you a number
Data profiling pricing, and the vendors who publish it
This category is unusually good on price transparency compared with catalogs or governance, mostly because the hyperscalers meter it. Below is every option on this page that publishes real figures on its own site or price API, quoted as published and cross-checked on 5 August 2026. Informatica, Ataccama, Qlik Talend, and IBM publish nothing.
| Vendor | Published pricing | What to watch |
|---|---|---|
| Datatrail | Starter $99, Team $299, Scale $799 per month | Flat monthly plans, self-serve signup, no per-column metering |
| AWS Glue DataBrew | $0.48 per node hour for jobs, $1.00 per 30-minute interactive session | Billed per minute, so profile job cost is easy to model in advance |
| Google Knowledge Catalog | $0.089 per DCU-hour for profiling and quality scans | The 100 free DCU-hours apply to the $0.06 standard tier only, not to profiling |
| Microsoft Purview | $0.0165 per governed asset per day, plus $15, $60 or $240 per processing unit | Roughly 0.02 processing units per simple rule against a million rows |
| Soda | Free tier, Team plan at $750 per month | Enterprise quoted separately |
| Snowflake | No separate charge, scheduled DMFs meter serverless compute | Enterprise Edition required, 50,000 DMF associations per account |
| Open-source libraries | No license fee | fg-data-profiling, dbt-profiler, Soda Core and GX Core are free to run |
Two traps in the metered rates are worth naming, because both produce a bill larger than the estimate. The first is Google's free tier, which reads as generous until you notice that profiling sits in the premium SKU the allowance excludes. The second is scan frequency across every metered option: profiling cost is roughly linear in how often you schedule it multiplied by how much you scan, so a daily full-table profile on a wide fact table costs many times a weekly profile on a sample, and nobody discovers that until the invoice arrives. Decide the cadence per table rather than globally.
On the enterprise platforms, review and procurement sites publish confident annual figures for Informatica, Ataccama, and Talend that contradict each other badly enough that some are simply wrong, and the numbers circulating for Ataccama in particular do not come from Ataccama. We do not reprint any of them, and neither should your internal comparison. Get the quote. Ours are on the pricing page.
How to choose
Four questions that decide which data profiling tool you need
A report, or a series?
The single most useful question. If you need to understand a dataset once, before a migration or a modelling exercise, a free library gives you more depth in an afternoon than any platform. If you need to know when a column changes, you need profiles stored run after run, and most classical profilers keep no history at all. Buying the wrong side of this line is the most common mistake in the category.
Can the data leave the warehouse?
Python profilers load rows into your process, which is fine for a sample and impossible for a wide table with a billion rows, and often disallowed for regulated data. Warehouse-native features, dbt-profiler, and Soda push the computation down into the warehouse instead. If your data cannot move, that constraint removes half the shortlist immediately.
Do you need relationship discovery?
Column statistics are commodity now and nearly everything computes them. Finding undeclared foreign keys, key candidates, and overlapping domains across tables and across sources is not commodity, it is expensive, and the lightweight tools do not attempt it. If your project is a migration or a consolidation, this requirement alone points you at the enterprise platforms.
What happens after a statistic moves?
A profiler tells you a null rate went from 0.1 to 4 percent. That is the beginning of the work, not the end. Ask what the tool does next: whether it alerts, whether it shows you which upstream job changed, and whether it lists the dashboards reading that column. Without lineage attached, every profile finding becomes a manual investigation.
Where we fit
When Datatrail is the right pick, and when it is not
Datatrail answers the fourth question above and largely ignores the first three. It connects to Snowflake, BigQuery, Redshift, Databricks, or Postgres with a read-only role, profiles every column continuously rather than on request, and stores the results as a series so that a statistic moving is an event. The compute stays in your warehouse and no rows are copied out. What makes that useful rather than merely tidy is the second half: every profile is attached to a column-level lineage graph built from query history and your dbt manifest, so when a null rate jumps the alert already lists the models, exposures, and dashboards that read the column. You get the finding and the blast radius together.
Be clear about what that is not. We are not an exploratory data analysis tool. If you have a CSV on your laptop and want a rich interactive report on it this afternoon, install fg-data-profiling and you will be better served in five minutes than by any product with a login. We do not do relationship discovery across heterogeneous sources either, so if your job is untangling undeclared keys between a mainframe and an ERP before a migration, the enterprise quality platforms such as Informatica and IBM are built for that and we are not. And if you are entirely inside one platform with modest needs, Snowflake data metric functions or Databricks Lakehouse Monitoring are already included in what you pay, and you should exhaust them before buying anything.
Where this shape wins is the situation most warehouse teams are actually in: several hundred tables, a dbt project, a handful of dashboards executives genuinely read, and no reliable way to notice that a column changed until somebody complains about a number. Profiling every column continuously catches it, and the lineage decides whether it matters. That is the same graph behind impact analysis before a change ships, freshness monitoring, and schema change alerts. For the wider field, see our guides to data quality tools, data observability tools, data catalog tools, and data governance tools.
Questions people ask
Data profiling tools, answered
What is data profiling?
Data profiling is the process of examining a dataset to describe what is actually in it: the real data types, how many values are missing or duplicated, how many are distinct, what the values look like when they are wrong, and how columns relate to each other. It produces a factual summary of the current state rather than a pass or fail result. Teams profile before a migration, before writing quality rules, and before trusting a table they did not build.
What are data profiling tools?
Data profiling tools are software that connects to a data source, computes per-column statistics automatically, and presents them as a report or a queryable table. The category splits four ways in 2026: open-source Python libraries such as fg-data-profiling for exploratory work, warehouse-native features such as Snowflake data metric functions and Databricks Lakehouse Monitoring, cloud services such as AWS Glue DataBrew, and enterprise quality platforms such as Informatica and Ataccama that add relationship discovery.
What are the three types of data profiling?
The three classical types are structure discovery, content discovery, and relationship discovery. Structure discovery checks that the format, type, and length of a column match what the schema declares. Content discovery examines the values themselves, measuring null rates, distinct counts, frequencies, and distributions. Relationship discovery looks across columns and tables to find key candidates, undeclared foreign keys, and overlapping data. Modern tools add a fourth, tracking how any of these change over time.
What is the difference between data profiling and data quality?
Profiling describes what the data is; data quality judges whether that is acceptable. Profiling is measurement without an opinion, producing statistics such as a 4 percent null rate on a column. Data quality applies a rule to that measurement and returns pass or fail, such as this column must never exceed 1 percent null. In practice profiling comes first, because it tells you which rules are worth writing. Writing quality rules without profiling first is how teams end up testing the columns that were never going to break.
Is data profiling the same as query profiling?
No, and the two get confused constantly because the words are identical. Data profiling analyzes the contents of a table: nulls, distributions, patterns, and keys. Query profiling analyzes the execution of a SQL statement: how long each operator took, how much data it scanned, and where the plan spent its time. Snowflake Query Profile, EXPLAIN ANALYZE in Postgres, and the MySQL profiler are all query profiling tools. If your goal is a faster query you want the second kind, and nothing on this page will help.
What is the best open source data profiling tool?
For exploratory profiling of a dataframe, the package formerly known as pandas-profiling and then ydata-profiling, now published as fg-data-profiling under the MIT license. For profiling inside an existing dbt project, the dbt-profiler package, which computes statistics as SQL in your warehouse. For profiling combined with declarative checks, Soda Core. Two cautions: Great Expectations removed its profilers in the 1.0 release, and there is no free Talend Open Studio edition any more despite what most lists say.
Does Snowflake have data profiling?
Yes, through data metric functions, which attach a metric to a table or column and evaluate it on a schedule, writing results to an event table. System functions cover null counts, duplicates, uniqueness, freshness, and row counts, and you can define your own in SQL. The constraints matter: it requires Enterprise Edition or above, only scheduled evaluations meter serverless compute, the default schedule is hourly, and there is a cap of 50,000 metric associations per account.
Does Databricks have data profiling?
Yes. Lakehouse Monitoring computes a profile metrics table per monitored table, holding count, nulls, average, min, max, standard deviation, distinct count, median, a quantile array, zero and NaN counts, string length statistics, and the top frequent items per column. It supports Snapshot, TimeSeries, and InferenceLog profile types. Because the output is a Unity Catalog table rather than a report, you can query profile history directly and detect drift with SQL. It requires Unity Catalog.
How much do data profiling tools cost?
It ranges from nothing to six figures. The open-source libraries carry no license fee, and your only cost is the compute they use. The cloud services publish real metered rates: AWS Glue DataBrew at $0.48 per node hour, Google at $0.089 per DCU-hour for profiling scans, and Microsoft Purview at $0.0165 per governed asset per day. The enterprise quality platforms, Informatica, Ataccama, Qlik Talend, and IBM, publish nothing and quote per deployment. Datatrail publishes flat monthly plans.
What are data profiling techniques?
The core techniques are column profiling, which computes statistics for each field independently; pattern and format analysis, which extracts the regular expressions values conform to; cross-column analysis, which finds dependencies and key candidates within a table; and cross-table analysis, which finds overlapping domains and undeclared foreign keys between tables. Sampling is applied to all of them at scale. The modern addition is comparing profiles across runs so that a change in any statistic becomes an alert.
Profile every column, and know what each one feeds
Connect your warehouse read-only and get continuous column profiles joined to a lineage graph, so a statistic moving arrives with the list of models and dashboards it affects. Published pricing, no sales call.