The #1 Open Source AI Data Catalog
Enterprise-grade metadata platform enabling discovery, governance, and observability across your entire data ecosystem
📊 NEW: Open Source Analytics Agent
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.
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
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.
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.
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.
# macOS / Linux (simplest)
brew install datahub-project/tap/datahub
# Or via pip (any platform)
pip install acryl-datahub
datahub docker quickstart
See the Quick Start section below for full instructions. The PyPI package is acryl-datahub; the Homebrew tap is datahub-project/homebrew-tap.
🎨 See DataHub in Action
▶️ Watch DataHub in Action:
🏗️ Architecture Overview
- ✅ Streaming-First: Real-time metadata updates via Kafka
- ✅ API-First: All features accessible via APIs
- ✅ Extensible: Plugin architecture for custom entity types
- ✅ Scalable: Proven to 10M+ assets and O(1B) relationships at LinkedIn and other companies in production
- ✅ Cloud-Native: Designed for Kubernetes deployment
→ Full architecture breakdown: components, storage layer, APIs, and design decisions
💻 Use Cases & Examples
Use Case: Extract table metadata, column schemas, and usage statistics from Snowflake data warehouse.
Prerequisites:
- DataHub instance running (local or remote)
- Snowflake account with read permissions
- DataHub CLI installed (
pip install 'acryl-datahub[snowflake]')
# snowflake_recipe.yml
source:
type: snowflake
config:
# Connection details
account_id: "xy12345.us-east-1"
warehouse: "COMPUTE_WH"
username: "${SNOWFLAKE_USER}"
password: "${SNOWFLAKE_PASSWORD}"
# Optional: Filter specific databases
database_pattern:
allow:
- "ANALYTICS_DB"
- "MARKETING_DB"
sink:
type: datahub-rest
config:
server: "http://localhost:8080"
# Run ingestion
datahub ingest -c snowflake_recipe.yml
# Expected output:
# ✓ Connecting to Snowflake...
# ✓ Discovered 150 tables in ANALYTICS_DB
# ✓ Discovered 75 tables in MARKETING_DB
# ✓ Ingesting metadata...
# ✓ Successfully ingested 225 datasets to DataHub
What gets ingested:
- Table and view schemas (columns, data types, descriptions)
- Table statistics (row counts, size, last modified)
- Lineage information (upstream/downstream tables)
- Usage statistics (query frequency, top users)
Use Case: Programmatically search DataHub catalog and retrieve dataset metadata.
Prerequisites:
- DataHub instance accessible
- Python 3.8+ installed
- DataHub Python package installed (
pip install 'acryl-datahub[datahub-rest]')
from datahub.ingestion.graph.client import DatahubClientConfig, DataHubGraph
# Initialize DataHub client
config = DatahubClientConfig(server="http://localhost:8080")
graph = DataHubGraph(config)
# Search for datasets containing "customer"
urns = graph.get_urns_by_filter(
entity_types=["dataset"],
query="customer",
)
for urn in urns:
print(f"Found: {urn}")
# Example output:
# Found: urn:li:dataset:(urn:li:dataPlatform:snowflake,analytics.customer_profiles,PROD)
# Found: urn:li:dataset:(urn:li:dataPlatform:bigquery,marketing.customer_segments,PROD)
Response format: Each result is a URN string uniquely identifying the dataset. Use the URN to fetch full metadata via the GraphQL or REST API.
Use Case: Retrieve upstream and downstream dependencies for a specific dataset.
Prerequisites:
- DataHub GMS endpoint accessible
- Dataset URN available from search or ingestion
GraphQL Query:
query GetLineage {
dataset(
urn: "urn:li:dataset:(urn:li:dataPlatform:snowflake,analytics.customer_profiles,PROD)"
) {
# Get upstream dependencies (source tables)
upstream: lineage(input: { direction: UPSTREAM }) {
entities {
urn
... on Dataset {
name
platform {
name
}
}
}
}
# Get downstream dependencies (consuming tables/dashboards)
downstream: lineage(input: { direction: DOWNSTREAM }) {
entities {
urn
type
... on Dataset {
name
platform {
name
}
}
... on Dashboard {
dashboardId
tool
}
}
}
}
}
Execute via cURL:
curl -X POST http://localhost:8080/api/graphql \
-H "Content-Type: application/json" \
-d '{"query": "query GetLineage { ... }"}'
Response structure:
upstream: Array of datasets that feed into this dataset
downstream: Array of datasets, dashboards, or ML models that consume this dataset
- Each entity includes URN, type, and basic metadata
Use Case: Programmatically add or update dataset documentation and custom properties.
Prerequisites:
- DataHub Python SDK installed
- Write permissions to DataHub instance
- Dataset already exists in DataHub (from ingestion)
from datahub.metadata.schema_classes import DatasetPropertiesClass
from datahub.emitter.mce_builder import make_dataset_urn
from datahub.emitter.rest_emitter import DatahubRestEmitter
# Create emitter to send metadata to DataHub
emitter = DatahubRestEmitter("http://localhost:8080")
# Create dataset URN (unique identifier)
dataset_urn = make_dataset_urn(
platform="snowflake",
name="analytics.customer_profiles",
env="PROD"
)
# Define dataset properties
properties = DatasetPropertiesClass(
description="""
Customer profiles aggregated from CRM and transaction data.
**Update Schedule:** Updated nightly via Airflow DAG `customer_profile_etl`
**Data Retention:** 7 years for compliance
**Owner:** Data Platform Team
""",
customProperties={
"owner_team": "data-platform",
"update_frequency": "daily",
"data_sensitivity": "PII",
"upstream_dag": "customer_profile_etl",
"business_domain": "customer_analytics"
}
)
# Emit metadata to DataHub
emitter.emit_mcp(
entityUrn=dataset_urn,
aspectName="datasetProperties",
aspect=properties
)
print(f"✓ Successfully updated documentation for {dataset_urn}")
What this does:
- Adds rich markdown documentation visible in DataHub UI
- Sets custom properties for governance and discovery
- Makes dataset searchable by custom property values
- Enables filtered searches (e.g., "show me all PII datasets")
Use Case: Enable AI agents (Cursor, Claude Desktop, Cline) to query DataHub metadata directly from your IDE or development environment.
Prerequisites:
- DataHub instance running and accessible
- MCP-compatible AI tool installed (Cursor, Claude Desktop, Cline, etc.)
- Node.js 18+ installed
Quick Setup:
# Initialize MCP server for DataHub
npx -y @acryldata/mcp-server-datahub init
# Follow the interactive prompts to configure:
# - DataHub GMS endpoint (e.g., http://localhost:8080)
# - Authentication token (if required)
# - MCP server settings
Configure your AI tool:
For Claude Desktop, add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"datahub": {
"command": "npx",
"args": ["-y", "@acryldata/mcp-server-datahub"]
}
}
}
For Cursor, configure in Settings → Features → MCP Servers
What you can ask your AI:
- "What datasets contain customer PII in production?"
- "Show me the lineage for analytics.revenue_table"
- "Who owns the 'Revenue Dashboard' in Looker?"
- "Find all datasets in the marketing domain"
- "What's the schema for user_events table?"
- "List datasets tagged as 'critical' or 'sensitive'"
Example conversation:
You: "What datasets are owned by the data-platform team?"
AI: Based on DataHub metadata, here are the datasets owned by data-platform:
- urn:li:dataset:(urn:li:dataPlatform:snowflake,analytics.customer_profiles,PROD)
Name: customer_profiles
Platform: Snowflake
Description: Aggregated customer data from CRM and transactions
- urn:li:dataset:(urn:li:dataPlatform:bigquery,marketing.campaign_performance,PROD)
Name: campaign_performance
Platform: BigQuery
Description: Marketing campaign metrics and ROI tracking
[... more results]
Benefits:
- ✅ Query metadata without leaving your IDE
- ✅ Natural language interface (no SQL/GraphQL needed)
- ✅ Real-time access to DataHub's metadata graph
- ✅ Understand data context while coding
- ✅ Discover relevant datasets for your task
📖 Full Documentation: MCP Server for DataHub
Common Use Cases
| Use Case | Description | Learn More |
|---|
| 🔍 Data Discovery | Help users find the right data for analytics and ML | Guide |
| 📊 Impact Analysis | Understand downstream impact before making changes | Lineage Docs |
| 🏛️ Data Governance | Enforce policies, classify PII, manage access | Governance Guide |
| 🔔 Data Quality | Monitor freshness, volumes, schema changes | Quality Checks |
| 📚 Documentation | Centralize data documentation and knowledge | Docs Features |
| 👥 Collaboration |
📝 DataHub in Action
Learn from teams using DataHub in production and get practical guidance:
🏢 Trusted by Industry Leaders
3,000+ organizations run DataHub in production worldwide — across both open-source deployments and DataHub Cloud — from hyperscale tech companies to regulated financial institutions and healthcare providers.
By Industry
🛒 E-Commerce & Retail: Etsy • Experius • Klarna • LinkedIn • MediaMarkt Saturn • Uphold • Wealthsimple • Wolt
🏥 Healthcare & Life Sciences: CVS Health • IOMED • Optum
✈️ Travel & Transportation: Cabify • DFDS • Expedia Group • Hurb • Peloton • Viasat
📚 Education & EdTech: ClassDojo • Coursera • Udemy
💰 Financial Services: Banksalad • Block • Chime • FIS • Funding Circle • GEICO • Inter&Co • N26 • Santander • Shanghai HuaRui Bank • Stash • Visa
🎮 Gaming, Entertainment & Streaming: Netflix • Razer • Showroomprive • TypeForm • UKEN Games • Zynga
🚀 Technology & SaaS: Adevinta • Apple • Digital Turbine • DPG Media • Foursquare • Geotab • HashiCorp • hipages • inovex • KPN • Miro • MYOB • Notion • Okta • Rippling • Saxo Bank • Slack • ThoughtWorks • Twilio • Wikimedia • WP Engine
📊 Data & Analytics: ABLY • DefinedCrowd • Grofers • Haibo Technology • Moloco • PITS Global Data Recovery Services • SpotHero
And thousands more across DataHub Core and DataHub Cloud.
Featured Case Studies
Using DataHub? Please feel free to add your organization to the list if we missed it — open a PR or let us know on Slack.
🌐 DataHub Ecosystem
DataHub is part of a rich ecosystem of tools and integrations.
Official Repositories
Community Plugins & Integrations
Integrations by Category
📊 BI & Analytics: Tableau • Looker • Power BI • Superset • Metabase • Mode • Redash
🗄️ Data Warehouses: Snowflake • BigQuery • Redshift • Databricks • Synapse • ClickHouse
🔄 Data Orchestration: Airflow • dbt • Dagster • Prefect • Luigi
🤖 ML Platforms: SageMaker • MLflow • Feast • Kubeflow • Weights & Biases
🔗 Data Integration: Fivetran • Airbyte • Stitch • Matillion
View all 80+ integrations →
💬 Community & Support
Join thousands of data practitioners building with DataHub!
🗓️ Town Halls
Monthly community calls with roadmap updates, live demos, and user case studies.
💬 Get Help & Connect
📧 Stay Updated
🎓 Learning Resources
🤝 Contributing
We ❤️ contributions from the community! See CONTRIBUTING.md for setup, guidelines, and ways to get involved.
Browse Good First Issues to get started!
📚 Resources & Learning
📰 Featured Content
Blog Posts & Articles:
Conference Talks:
Podcasts:
🔗 Important Links
📄 License
DataHub is open source software released under the Apache License 2.0.
Copyright 2015-2026 LinkedIn Corporation
Copyright 2025-Present DataHub Project Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
What this means:
- ✅ Commercial use allowed
- ✅ Modification allowed
- ✅ Distribution allowed
- ✅ Patent use allowed
- ✅ Private use allowed
Learn more: Choose a License - Apache 2.0