MCPcopy Index your code
hub / github.com/datahub-project/datahub

github.com/datahub-project/datahub @v1.6.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.6.0 ↗ · + Follow
70,890 symbols 427,050 edges 10,464 files 19,820 documented · 28%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

DataHub

The #1 Open Source AI Data Catalog

Enterprise-grade metadata platform enabling discovery, governance, and observability across your entire data ecosystem

Build Status PyPI Version PyPI Downloads Docker Pulls

Join Slack YouTube Subscribers DataHub Blog Contributors GitHub Stars License

Free Cloud TrialQuick StartLive DemoDocumentationSlack CommunityYouTube

Built with ❤️ by DataHub and LinkedIn


DataHub Product Tour

Search, discover, and understand your data with DataHub's unified metadata platform


📊 NEW: Open Source Analytics Agent

Analytics Agent answering a data question with a chart

Ask data questions in plain English — get SQL, results, and charts back

Open-source agent grounded in your DataHub catalog. Apache 2.0. Bring your own LLM.

Quick start:

git clone https://github.com/datahub-project/analytics-agent.git
cd analytics-agent && bash quickstart.sh

Read the announcement → · Docs → · Repo →

Using AI coding assistants? Connect Cursor, Claude Desktop, or Cline directly to DataHub via the Model Context Protocol: npx -y @acryldata/mcp-server-datahub init


What is DataHub?

🔍 Finding the right DataHub? This is the open-source metadata platform at datahub.com (GitHub: datahub-project/datahub). It was previously hosted at datahubproject.io, which now redirects to datahub.com. This project is not related to datahub.io, which is a separate public dataset hosting service. See the FAQ below.

DataHub is the #1 open-source AI data catalog that enables discovery, governance, and observability across your entire data ecosystem. Originally built at LinkedIn, DataHub now powers data discovery at thousands of organizations worldwide, managing millions of data assets.

The Challenge: Modern data stacks are fragmented across dozens of tools—warehouses, lakes, BI platforms, ML systems, AI agents, orchestration engines. Finding the right data, understanding its lineage, and ensuring governance is like searching through a maze blindfolded.

The DataHub Solution: DataHub acts as the central nervous system for your data stack—connecting all your tools through real-time streaming or batch ingestion to create a unified metadata graph. Unlike static catalogs, DataHub keeps your metadata fresh and actionable—powering both human teams and AI agents.

DataHub for Humans and AI

Why DataHub?

  • 🚀 Battle-Tested at Scale: Born at LinkedIn to handle hyperscale data, now proven at thousands of organizations worldwide managing millions of data assets
  • ⚡ Real-Time Streaming: Metadata updates in seconds, not hours or days
  • 🤖 AI-Ready: Native support for AI agents via MCP, LLM integrations, and context management
  • 🔌 Pioneering Ingestion Architecture: Flexible push/pull framework (widely adopted by other catalogs) with 80+ production-grade connectors extracting deep metadata—column lineage, usage stats, profiling, and quality metrics
  • 👨‍💻 Developer-First: Rich APIs (GraphQL, OpenAPI), Python + Java SDKs, CLI tools
  • 🏢 Enterprise Ready: Battle-tested security, authentication, authorization, and audit trails
  • 🌍 Open Source: Apache 2.0 licensed, vendor-neutral, community-driven

🧠 The Context Foundation

Essential for modern data teams and reliable AI agents:


📑 Table of Contents


❓ Frequently Asked Questions

Is this the same project as datahub.io?

No. datahub.io is a completely separate project — a public dataset hosting service with no affiliation to this project. DataHub (this project) is an open-source metadata platform for data discovery, governance, and observability, hosted at datahub.com and developed at github.com/datahub-project/datahub.

What happened to datahubproject.io?

DataHub was previously hosted at datahubproject.io. That domain now redirects to datahub.com. All documentation has moved to docs.datahub.com. If you find references to datahubproject.io in blog posts or tutorials, they refer to this same project — just under its former domain.

Is DataHub related to LinkedIn's internal DataHub?

Yes. DataHub was originally built at LinkedIn to manage metadata at scale across their data ecosystem. LinkedIn open-sourced DataHub in 2020. It has since grown into an independent community project under the datahub-project GitHub organization, now hosted at datahub.com.

How do I install the DataHub metadata platform?

pip install acryl-datahub
datahub docker quickstart

See the Quick Start section below for full instructions. The PyPI package is acryl-datahub.


🎨 See DataHub in Action

Universal Search 🔍 Universal Search Find any data asset instantly across your entire stack Column-Level Lineage 📊 Column-Level Lineage Trace data flow from source to consumption
Rich Dataset Profiles 📋 Rich Dataset Profiles Schema, statistics, documentation, and ownership Governance Dashboard 🏛️ Governance Dashboard Manage policies, tags, and compliance

▶️ Watch DataHub in Action:


🚀 Quick Start

Option 1: Try the Hosted Demo (Fastest)

No installation required. Explore a fully-loaded DataHub instance with sample data instantly:

🌐 Launch Live Demo: demo.datahub.com

Option 2: Run Locally with Python (Recommended)

Get DataHub running on your machine in under 2 minutes:

# Prerequisites: Docker Desktop with 8GB+ RAM allocated

# Upgrade pip and install DataHub CLI
python3 -m pip install --upgrade pip wheel setuptools
python3 -m pip install --upgrade acryl-datahub

# Launch DataHub locally via Docker
datahub docker quickstart

# Access DataHub at http://localhost:9002
# Default credentials: datahub / datahub

Note: You can also use uv or other Python package managers instead of pip.

What's included:

  • Full Stack: GMS backend, React UI, Elasticsearch, MySQL, and Kafka.
  • Sample Data: Pre-loaded datasets, lineage, and owners for exploration.
  • Ingestion Ready: Fully prepared to connect your own local or cloud data sources.

Option 3: Run from Source (For Contributors)

Best for advanced users who want to modify the core codebase or run directly from the repository:

# Clone the repository
git clone https://github.com/datahub-project/datahub.git
cd datahub

# Start all services with docker-compose
./docker/quickstart.sh

# Access DataHub at http://localhost:9002
# Default credentials: datahub / datahub

Next Steps


📦 Installation Options

DataHub supports three deployment models:

See all deployment guides (AWS, Azure, GCP, environment variables)


🏗️ Architecture Overview

  • Streaming-First: Real-time metadata updates via Kafka
  • ✅ **API-First:

Extension points exported contracts — how you extend this code

CustomPropertiesPatchBuilderSupport (Interface)
Interface to implement if an aspect supports custom properties changes [11 implementers]
entity-registry/src/main/java/com/linkedin/metadata/aspect/patch/builder/subtypesupport/CustomPropertiesPatchBuilderSupport.java
AuthorizationSession (Interface)
Combines a common interface for actor and authorizer which is cached per session [9 implementers]
li-utils/src/main/java/com/datahub/authorization/AuthorizationSession.java
EntitySpecResolver (Interface)
An Entity Spec Resolver is responsible for resolving a EntitySpec to a ResolvedEntitySpec. [7 implementers]
metadata-auth/auth-api/src/main/java/com/datahub/authorization/EntitySpecResolver.java
DataAvailabilityChecker (Interface)
Functional interface for data availability checking. [19 implementers]
metadata-io/src/testFixtures/java/io/datahubproject/test/search/SearchTestUtils.java
Upgrade (Interface)
Specification of an upgrade to be performed to the DataHub platform. [10 implementers]
datahub-upgrade/src/main/java/com/linkedin/datahub/upgrade/Upgrade.java
Emitter (Interface)
An interface implemented by all metadata emitters to DataHub. Typical usage: 1. Construct the emitter using the native c [8 …
metadata-integration/java/datahub-client/src/main/java/datahub/client/Emitter.java
BootstrapStep (Interface)
A single step in the Bootstrap process. [7 implementers]
metadata-service/factories/src/main/java/com/linkedin/metadata/boot/BootstrapStep.java
EntityFieldResolverProvider (Interface)
Base class for defining a class that provides the field resolver for the given field type [18 implementers]
metadata-service/auth-impl/src/main/java/com/datahub/authorization/fieldresolverprovider/EntityFieldResolverProvider.java

Core symbols most depended-on inside this repo

build
called by 4850
metadata-integration/java/datahub-event/src/main/java/datahub/event/MetadataChangeProposalWrapper.java
of
called by 3799
metadata-io/src/main/java/com/linkedin/metadata/search/elasticsearch/query/filter/QueryFilterRewriteChain.java
map
called by 3639
metadata-integration/java/datahub-client/src/main/java/datahub/client/MetadataResponseFuture.java
info
called by 3465
e2e-test/ui/playwright/utils/logger.ts
append
called by 3267
metadata-ingestion/src/datahub/utilities/lossy_collections.py
put
called by 2886
metadata-integration/java/datahub-client/src/main/java/datahub/client/v2/entity/AspectCache.java
contains
called by 2616
metadata-ingestion/src/datahub/utilities/time.py
of
called by 2473
li-utils/src/main/java/com/linkedin/util/Pair.java

Shape

Method 43,758
Function 15,922
Class 8,468
Interface 1,528
Route 1,007
Enum 207

Languages

Python47%
Java41%
TypeScript12%

Modules by API surface

metadata-ingestion/tests/unit/kafka_connect/test_kafka_connect.py245 symbols
metadata-ingestion/tests/unit/cli/test_graphql_cli.py176 symbols
datahub-web-react/src/app/analytics/event.ts162 symbols
metadata-ingestion/tests/unit/test_superset_source.py146 symbols
metadata-ingestion/tests/unit/test_transform_dataset.py140 symbols
metadata-ingestion/tests/unit/test_teradata_source.py139 symbols
metadata-io/src/test/java/com/linkedin/metadata/aspect/consistency/ConsistencyServiceTest.java137 symbols
metadata-ingestion/tests/unit/sqlalchemy_profiler/test_adapters.py135 symbols
metadata-ingestion/tests/unit/sigma/test_sigma_api.py133 symbols
metadata-ingestion/tests/unit/cli/test_search_cli.py133 symbols
metadata-ingestion/src/datahub/ingestion/source/tableau/tableau.py130 symbols
metadata-ingestion/tests/unit/utilities/test_graphql_query_adapter.py124 symbols

Datastores touched

(mysql)Database · 1 repos
datahubDatabase · 1 repos
(mongodb)Database · 1 repos
datahubDatabase · 1 repos
librarydbDatabase · 1 repos
testdbDatabase · 1 repos
metastoreDatabase · 1 repos
postgresDatabase · 1 repos

For agents

$ claude mcp add datahub \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact