Skip to content

acryldata/datahub

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

15,159 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

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

Quick Start โ€ข Live Demo โ€ข Documentation โ€ข Roadmap โ€ข Slack Community โ€ข YouTube

Built with โค๏ธ by DataHub and LinkedIn


DataHub Product Tour

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


๐Ÿค– NEW: Connect AI Agents to DataHub via Model Context Protocol (MCP)

DataHub MCP Demo - Query metadata with AI agents
โ–ถ๏ธ Click to watch full demo on YouTube

Connect your AI coding assistants (Cursor, Claude Desktop, Cline) directly to DataHub. Query metadata with natural language: "What datasets contain PII?" or "Show me lineage for this table"

Quick setup:

npx -y @acryldata/mcp-server-datahub init

Learn more โ†’


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: 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

Example 1: Ingest Metadata from Snowflake

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)

Example 2: Search for Datasets via Python SDK

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"
# Returns up to 10 most relevant results
results = graph.search(
    entity="dataset",
    query="customer",
    count=10
)

# Process and display results
for result in results:
    print(f"Found: {result.entity.urn}")
    print(f"  Name: {result.entity.name}")
    print(f"  Platform: {result.entity.platform}")
    print(f"  Description: {result.entity.properties.description}")
    print("---")

# Example output:
# Found: urn:li:dataset:(urn:li:dataPlatform:snowflake,analytics.customer_profiles,PROD)
#   Name: customer_profiles
#   Platform: snowflake
#   Description: Aggregated customer data from CRM and transactions
# ---

Response format: Each result contains:

  • urn: Unique resource identifier for the dataset
  • name: Human-readable dataset name
  • platform: Source platform (snowflake, bigquery, etc.)
  • properties: Additional metadata (description, tags, owners, etc.)

Example 3: Query Lineage via GraphQL

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

Example 4: Add Documentation via Python API

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:

  1. Adds rich markdown documentation visible in DataHub UI
  2. Sets custom properties for governance and discovery
  3. Makes dataset searchable by custom property values
  4. Enables filtered searches (e.g., "show me all PII datasets")

Example 5: Connect AI Coding Assistants via Model Context Protocol

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 Foster data culture with discussions and ownership Collaboration

๐Ÿ“ DataHub in Action

Learn from teams using DataHub in production and get practical guidance:

Real-world metadata strategies from teams at Grab, Slack, and Checkout.com who manage data at scale.

Case Studies

Practical guide to implementing data contracts between producers and consumers for quality and accountability.

Implementation Guide

Real-world case study: scaling data governance and AI operations across 50+ platforms using MCP.

AI Case Study

โ†’ Explore all posts on our blog


๐Ÿข 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

Repository Description Links
datahub Core platform: metadata model, services, connectors, and web UI Docs
datahub-actions Framework for responding to metadata changes in real-time Guide
datahub-helm Production-ready Helm charts for Kubernetes deployment Charts
static-assets Logos, images, and brand assets for DataHub -

Community Plugins & Integrations

Project Description Maintainer
datahub-tools Python tools for GraphQL endpoint interaction Notion
dbt-impact-action GitHub Action for dbt change impact analysis Acryl Data
business-glossary-sync-action Sync business glossary via GitHub PRs Acryl Data
mcp-server-datahub Model Context Protocol server for AI integration Acryl Data
meta-world Recipes, custom sources, and transformations Community

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

Next Town Hall:

Last Town Hall:

โ†’ View all past recordings

๐Ÿ’ฌ Get Help & Connect

Channel Purpose Link
Slack Community Real-time chat, questions, announcements Join 14,000+ members
GitHub Discussions Technical discussions, feature requests Start a Discussion
GitHub Issues Bug reports, feature requests Open an Issue
Stack Overflow Technical Q&A (tag: datahub) Ask a Question
YouTube Tutorials, demos, talks Subscribe
LinkedIn Company updates, blogs Follow Us
Twitter/X Quick updates, community highlights Follow @datahubproject

๐Ÿ“ง 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

Resource URL
๐Ÿ“– Official Documentation https://docs.datahub.com
๐Ÿ  Project Website https://datahub.com
๐ŸŒ Live Demo https://demo.datahub.com
๐Ÿ“Š Roadmap https://feature-requests.datahubproject.io/roadmap
๐Ÿ—“๏ธ Town Hall Schedule https://docs.datahub.com/docs/townhalls
๐Ÿ’ฌ Slack Community https://datahub.com/slack
๐Ÿ“บ YouTube Channel https://youtube.com/@datahubproject
๐Ÿ“ Blog https://datahub.com/blog/
๐Ÿ”— LinkedIn https://www.linkedin.com/company/72009941
๐Ÿฆ Twitter/X https://twitter.com/datahubproject
๐Ÿ”’ Security https://docs.datahub.com/docs/security

๐Ÿ“„ License

DataHub is open source software released under the Apache License 2.0.

Copyright 2015-2025 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


โญ If you find DataHub useful, please star the repository! โญ

Made with โค๏ธ by the DataHub community

About

A Generalized Metadata Search & Discovery Tool

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Java 39.4%
  • Python 34.2%
  • TypeScript 24.7%
  • JavaScript 1.1%
  • Shell 0.2%
  • Dockerfile 0.1%
  • Other 0.3%