Data Catalog
A searchable inventory of all datasets in an organization, with metadata like schema, owner, freshness, and lineage. The 'Google for your data.'
What is Data Catalog?
In short
A data catalog is a searchable inventory of all the datasets, tables, dashboards, and pipelines in an organization, enriched with metadata such as schema, owner, description, freshness, and lineage. It lets anyone find the right data, understand what it means, and trust whether it is safe to use, instead of asking around or guessing.
What a data catalog actually is
Picture a company with thousands of database tables, a few hundred BigQuery datasets, dozens of Kafka topics, and a wall of Tableau dashboards. An analyst needs the table that holds confirmed customer orders. Without a catalog, they ping people on Slack, get pointed to orders_v2, orders_final, and orders_new, and have no idea which one is current or who owns it. That guessing game is the problem a data catalog solves.
A data catalog is a central index of every data asset, plus the metadata that describes each one. For a single table that metadata includes the column names and types, a plain-English description, the team that owns it, when it was last updated, how many rows it has, how often it is queried, and which classifications apply such as PII or financial data.
The shorthand people use is the Google for your data. You type customer revenue into a search box and get back the actual tables, the people who own them, sample values, and the queries other people ran against them. It turns tribal knowledge that lived in a few engineers' heads into something the whole company can search.
How it works under the hood
Catalogs build their index through crawlers, also called connectors or scanners. A crawler connects to a source such as Snowflake, Postgres, S3, or Kafka, reads its system tables and information_schema, and pulls back the technical metadata: table names, columns, types, partition layout, and row counts. This runs on a schedule, often nightly, so the catalog stays close to the real state of the warehouse.
On top of that the catalog stores business metadata that humans add: descriptions, owners, glossary terms, and tags like sensitive or deprecated. Lineage is the third big piece. By parsing SQL query logs and pipeline definitions, the catalog builds a graph showing that raw_events feeds daily_sessions which feeds the executive dashboard, so you can trace any number back to its source and see what breaks downstream if a table changes.
All of this gets indexed in a search engine, usually Elasticsearch or a similar full text store, with a metadata model behind it. Modern catalogs also expose APIs and event streams so metadata can be pushed in automatically from dbt, Airflow, or Spark jobs rather than only pulled by crawlers.
When to use it and the trade-offs
You need a catalog once data discovery stops being trivial, which in practice is when you have more than a handful of teams or more than a few hundred tables. Below that scale a shared spreadsheet or a README works fine, and a full catalog is overkill. Above it, the cost of people not finding or trusting data grows fast: duplicated pipelines, wrong numbers in reports, and compliance gaps.
The honest trade-off is that a catalog is only as good as the metadata in it. Crawlers give you technical metadata for free, but descriptions, ownership, and glossary terms require people to do the work. A catalog where every table reads no description added is worse than useless because it gives a false sense of coverage. The usual fix is to make ownership mandatory at table creation and to auto-populate descriptions from dbt or schema comments.
There is also a freshness and security cost. Crawl too often and you load the production warehouse with metadata queries; crawl too rarely and the catalog drifts from reality. And because the catalog can show samples of sensitive columns, it needs its own access controls and PII detection so it does not become a backdoor to data people should not see.
A concrete example
At Airbnb the team built an internal catalog called Dataportal because engineers were wasting hours hunting for the right tables. It crawls their Hive warehouse and dashboards, ranks results by how central an asset is in the lineage graph and how often it is used, and shows who the top users and owners are. An analyst searching for bookings sees the authoritative table first, not a stale copy.
The same pattern shows up across the industry. LinkedIn open sourced DataHub, which models every asset as an entity in a metadata graph and ingests from dozens of sources through a streaming pipeline. Lyft built Amundsen, which uses a Neo4j graph plus Elasticsearch and ranks tables partly by query popularity, the same way a search engine ranks pages by links. Both are now widely adopted outside the companies that wrote them.
Where it is used in production
LinkedIn DataHub
Open source catalog that models every dataset, dashboard, and job as an entity in a metadata graph, ingesting from dozens of sources through a streaming pipeline.
Lyft Amundsen
Open source catalog using a Neo4j graph plus Elasticsearch, ranking tables by query popularity so the most trusted data surfaces first.
Airbnb Dataportal
Internal catalog that crawls their Hive warehouse and dashboards and ranks results using PageRank style centrality on the lineage graph.
AWS Glue Data Catalog
Managed catalog that crawls S3, RDS, and Redshift, stores schema and partitions, and feeds query engines like Athena and Spark.
Frequently asked questions
- What is the difference between a data catalog and a data dictionary?
- A data dictionary is a narrow document that describes the columns and meaning of one specific database or schema. A data catalog is broader: it indexes assets across many systems (warehouses, lakes, dashboards, streams) and adds search, lineage, ownership, and usage stats on top. The dictionary is one input the catalog can absorb.
- Is a data catalog the same as a metastore like the Hive Metastore?
- No. A metastore is a technical store that engines query at runtime to know where a table's files live and what its schema is. A data catalog is a human-facing discovery layer that often reads from metastores but adds descriptions, search, lineage, and governance that engines do not need.
- How does a catalog know about data lineage?
- It parses SQL query logs and the definitions of pipelines in tools like dbt, Airflow, and Spark. By analyzing which tables a query reads and which it writes, the catalog builds a directed graph linking sources to derived tables to dashboards, so you can trace any metric back to its origin.
- Why do many data catalog projects fail?
- Crawlers populate technical metadata automatically, but descriptions, ownership, and business glossary terms need humans to fill them in, and that work usually does not happen. A catalog full of empty descriptions and unknown owners gives false confidence. Successful rollouts make ownership mandatory and auto-generate descriptions from existing schema comments or dbt models.
- Do small startups need a data catalog?
- Usually not at first. With a handful of analysts and a few dozen tables, a shared README or a well commented dbt project is enough. The payoff arrives once multiple teams, hundreds of tables, and compliance requirements make ad hoc discovery slow and error prone.
Learn Data Catalog hands-on
This page explains the idea. The full lesson lets you step through the ring as servers join and leave, read the implementation, and check yourself with a quiz. It is one of 760+ lessons in the System Design Masterclass, from your first API call to distributed consensus. Eleven Foundation lessons are free, no signup. Lifetime access is ₹499 in India or $7.99 worldwide, one payment, no subscription.
Related lessons
Lessons that touch on Data Catalog as part of a larger topic.
See also
Related glossary terms you might want to look up next.
Data Lineage
Tracking data from its origin through every transformation and system it passes through. Answers 'where did this number come from?' for audits and debugging.
Data Lake
A centralized repository that stores raw data at any scale in its native format. Unlike a data warehouse, data doesn't need to be structured or cleaned before loading.
Data Mesh
A decentralized data architecture where each domain team owns and publishes its data as a product. Shifts responsibility from a central data team to domain teams.
GDPR
General Data Protection Regulation: EU law governing how personal data is collected, stored, and processed. Requires consent, data portability, and the right to be forgotten.
PII
Personally Identifiable Information: any data that can identify a specific individual, like name, email, SSN, or IP address. Must be encrypted and access-controlled.
Data Masking
Replacing sensitive data with realistic but fake values so developers and testers can work with production-like data without exposing real PII.