datahub:基于开源生态的AI数据目录平台项目

The Context Platform for your Data and AI Stack

Branch1198Tags189
This repository is empty

DataHub

排名第一的开源 AI 数据目录

企业级元数据平台,助力您在整个数据生态系统中实现数据发现、治理与可观测性

构建状态 PyPI 版本 PyPI 下载量 Docker 拉取量
加入 Slack YouTube 订阅者 DataHub 博客 贡献者 GitHub 星标 许可证

免费云试用快速开始在线演示文档Slack 社区YouTube

DataHubLinkedIn 倾心打造


DataHub 产品导览

借助 DataHub 的统一元数据平台,轻松搜索、发现并理解您的数据


📊 全新:开源分析智能体

分析智能体以图表回答数据问题
用自然语言提问数据问题——直接返回 SQL、结果和图表

基于你的 DataHub 目录构建的开源智能体。采用 Apache 2.0 许可证。可自带 LLM。

快速开始:

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

阅读公告 → · 文档 → · 代码仓库 →

正在使用 AI 编程助手? 通过 模型上下文协议 将 Cursor、Claude Desktop 或 Cline 直接连接到 DataHub:npx -y @acryldata/mcp-server-datahub init


什么是 DataHub?

🔍 在找对的 DataHub? 这里是位于 datahub.com开源元数据平台(GitHub: datahub-project/datahub)。它之前托管在 datahubproject.io,该域名现已重定向至 datahub.com。本项目与 datahub.io 无关,后者是一个独立的公共数据集托管服务。请参阅下方的 FAQ

DataHub 是排名第一的开源 AI 数据目录,可在整个数据生态系统中实现发现、治理和可观测性。DataHub 最初由 LinkedIn 打造,如今为全球数千家组织提供数据发现能力,管理着数百万数据资产。

挑战: 现代数据栈分散在数十种工具中——数据仓库、数据湖、BI 平台、机器学习系统、AI 代理、编排引擎。找到正确的数据、理解其血缘关系并确保治理合规,就像蒙着眼睛在迷宫中摸索。

DataHub 的解决方案: DataHub 充当数据栈的中枢神经系统——通过实时流式或批量摄入连接所有工具,构建统一的元数据图谱。与静态目录不同,DataHub 让您的元数据始终保持新鲜且可操作——同时赋能人类团队和 AI 代理。

DataHub for Humans and AI

为什么选择 DataHub?

  • 🚀 久经大规模实战考验: 诞生于 LinkedIn 以应对超大规模数据,现已在全球数千家组织中得到验证,管理着数百万数据资产
  • ⚡ 实时流式处理: 元数据在数秒内更新,而非数小时或数天
  • 🤖 AI 就绪: 通过 MCP 原生支持 AI 代理、LLM 集成和上下文管理
  • 🔌 领先的摄入架构: 灵活的推/拉框架(已被其他目录广泛采用),拥有 80+ 生产级连接器,可提取深度元数据——列级血缘、使用统计、数据剖析和质量指标
  • 👨‍💻 开发者优先: 丰富的 API(GraphQL、OpenAPI)、Python + Java SDK、CLI 工具
  • 🏢 企业级就绪: 久经考验的安全、认证、授权和审计追踪
  • 🌍 开源: Apache 2.0 许可证,厂商中立,社区驱动

🧠 上下文基础

现代数据团队与可靠AI代理的必备基石:


📑 目录


❓ 常见问题

这与datahub.io是同一个项目吗?

不是。datahub.io 是一个完全独立的项目——一个公共数据集托管服务,与本项目没有任何关联。DataHub(本项目)是一个开源的元数据平台,用于数据发现、治理和可观测性,托管于 datahub.com,并在 github.com/datahub-project/datahub 上进行开发。

datahubproject.io发生了什么?

DataHub此前托管在 datahubproject.io 域名下。该域名现在重定向至 datahub.com。所有文档已迁移至 docs.datahub.com。如果你在博客文章或教程中看到 datahubproject.io 的引用,它们指向的是同一个项目——只是使用了旧域名。

DataHub与LinkedIn内部的DataHub有关联吗?

有关。DataHub最初在LinkedIn内部构建,用于在其数据生态系统中大规模管理元数据。LinkedIn于2020年将DataHub开源。此后,它已发展成为一个独立的社区项目,隶属于 datahub-project GitHub组织,目前托管于 datahub.com

如何安装DataHub元数据平台?

</需要翻译的内容>

# macOS / Linux (simplest)
brew install datahub-project/tap/datahub

# Or via pip (any platform)
pip install acryl-datahub

datahub docker quickstart

有关完整说明,请参阅下方快速开始部分。PyPI 包名为 acryl-datahub;Homebrew tap 为 datahub-project/homebrew-tap


🎨 一览 DataHub 实际效果

通用搜索

🔍 通用搜索
在整个技术栈中即时查找任何数据资产

列级血缘

📊 列级血缘
追踪数据从源头到消费的完整流转

丰富的数据集画像

📋 丰富的数据集画像
涵盖 Schema、统计信息、文档与所有权

治理仪表盘

🏛️ 治理仪表盘
统一管理策略、标签与合规性

▶️ 观看 DataHub 实操演示:


🚀 快速开始

方案一:试用托管演示(最快)

无需安装,即刻探索一个内置示例数据的完整 DataHub 实例:

🌐 启动在线演示:demo.datahub.com

选项二:本地运行(推荐)

在不到两分钟内,让 DataHub 在您的机器上运行起来。

前提条件: 已安装 Docker Desktop,并分配 8GB 以上内存。

使用 Homebrew(macOS / Linux)或 pip 安装 DataHub CLI:

# Homebrew (macOS / Linux)
brew install datahub-project/tap/datahub

# Or pip (any platform)
python3 -m pip install --upgrade pip wheel setuptools
python3 -m pip install --upgrade acryl-datahub

然后通过Docker在本地启动DataHub:

datahub docker quickstart

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

注意: 对于 pip,您也可以使用 uv 或其他 Python 包管理器。

包含内容:

  • 完整技术栈: GMS 后端、React 前端、Elasticsearch、MySQL 和 Kafka。
  • 示例数据: 预加载的数据集、数据血缘和所有者信息,方便您探索。
  • 即接即用: 已完全准备好连接您本地或云端的自有数据源。

选项三:从源码运行(适用于贡献者)

最适合希望修改核心代码库或直接从仓库运行的高级用户:

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

# One-time setup (Python CLI + dev tooling)
scripts/dev/datahub-dev.sh setup

# Start DataHub (Gradle profiles under docker/profiles)
scripts/dev/datahub-dev.sh start

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

后续步骤

  • 🔌 连接您的数据: 探索适用于 Snowflake、BigQuery、dbt 等的 摄取指南
  • 📚 学习基础知识: 浏览 快速入门指南
  • 🎓 DataHub 学院: 通过我们的 高级教程 深入学习。

📦 安装选项

DataHub 支持三种部署模式:

查看所有部署指南(AWS、Azure、GCP、环境变量)


🏗️ 架构概览

  • 流式优先: 通过 Kafka 实现实时元数据更新
  • API 优先: 所有功能均可通过 API 访问
  • 可扩展: 插件架构支持自定义实体类型
  • 可伸缩: 已在 LinkedIn 及其他公司的生产环境中验证,可支撑 1000 万+ 资产和 10 亿级关系
  • 云原生: 专为 Kubernetes 部署设计

完整架构解析:组件、存储层、API 与设计决策


💻 用例与示例

示例 1:从 Snowflake 摄取元数据

用例: 从 Snowflake 数据仓库中提取表元数据、列架构和使用统计信息。

前提条件:

  • 已运行的 DataHub 实例(本地或远程)
  • 具有只读权限的 Snowflake 账户
  • 已安装 DataHub CLI(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

摄取内容:

  • 表及视图结构(列、数据类型、描述)
  • 表统计信息(行数、大小、最后修改时间)
  • 血缘信息(上游/下游表)
  • 使用统计(查询频率、热门用户)

示例 2:通过 Python SDK 搜索数据集

使用场景: 以编程方式搜索 DataHub 目录并检索数据集元数据。

前提条件:

  • 可访问的 DataHub 实例
  • 已安装 Python 3.8 及以上版本
  • 已安装 DataHub Python 包(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)

响应格式: 每个结果均为唯一标识数据集的URN字符串。使用该URN可通过GraphQL或REST API获取完整元数据。


示例3:通过GraphQL查询数据血缘

使用场景: 检索特定数据集的上游与下游依赖关系。

前提条件:

  • DataHub GMS端点可访问
  • 数据集URN可通过搜索或数据接入获取

GraphQL查询:

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

通过 cURL 执行:

curl -X POST http://localhost:8080/api/graphql \
  -H "Content-Type: application/json" \
  -d '{"query": "query GetLineage { ... }"}'

响应结构:

  • upstream:输入到该数据集的数组
  • downstream:消费该数据集的数据集、仪表板或机器学习模型的数组
  • 每个实体包含URN、类型和基本元数据

示例4:通过Python API添加文档

使用场景: 以编程方式添加或更新数据集文档及自定义属性。

前提条件:

  • 已安装DataHub Python SDK
  • 对DataHub实例具有写入权限
  • 数据集已存在于DataHub中(通过数据摄取)
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}")

功能说明:

  1. 在 DataHub 界面中添加富文本 Markdown 文档
  2. 为治理与发现设置自定义属性
  3. 使数据集可通过自定义属性值进行搜索
  4. 支持过滤搜索(例如,“显示所有 PII 数据集”)

示例 5:通过 Model Context Protocol 连接 AI 编程助手

应用场景: 使 AI 代理(Cursor、Claude Desktop、Cline)能够直接从您的 IDE 或开发环境中查询 DataHub 元数据。

前置条件:

  • DataHub 实例已运行且可访问
  • 已安装兼容 MCP 的 AI 工具(Cursor、Claude Desktop、Cline 等)
  • 已安装 Node.js 18 或更高版本

快速配置:

# 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

配置您的 AI 工具:

对于 Claude Desktop,请添加到 ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "datahub": {
      "command": "npx",
      "args": ["-y", "@acryldata/mcp-server-datahub"]
    }
  }
}

对于 Cursor,可在 设置 → 功能 → MCP 服务器 中进行配置

你可以向 AI 询问的内容:

  • "生产环境中哪些数据集包含客户 PII?"
  • "显示 analytics.revenue_table 的血缘关系"
  • "Looker 中 'Revenue Dashboard' 的所有者是谁?"
  • "查找 marketing 域中的所有数据集"
  • "user_events 表的 schema 是什么?"
  • "列出标记为 'critical' 或 'sensitive' 的数据集"

示例对话:

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]

优势:

  • ✅ 无需离开 IDE 即可查询元数据
  • ✅ 自然语言界面(无需 SQL/GraphQL)
  • ✅ 实时访问 DataHub 的元数据图谱
  • ✅ 编码时即可理解数据上下文
  • ✅ 发现与任务相关的数据集

📖 完整文档: DataHub 的 MCP 服务器


常见用例

用例 描述 了解更多
🔍 数据发现 帮助用户为分析和机器学习找到合适的数据 指南
📊 影响分析 在做出更改之前了解下游影响 血缘文档
🏛️ 数据治理 强制执行策略、对 PII 进行分类、管理访问权限 治理指南
🔔 数据质量 监控数据新鲜度、数据量、 schema 变更 质量检查
📚 文档管理 集中管理数据文档和知识 文档功能
👥 协作 通过讨论和所有权培养数据文化 协作

📝 DataHub 实战

了解在生产环境中使用 DataHub 的团队经验,获取实用指导:

🏆 来自一线的实践最佳实践

来自 Grab、Slack 和 Checkout.com 等大规模数据管理团队的真实元数据策略。

案例研究

📋 数据契约:如何使用

在生产者和消费者之间实施数据契约的实用指南,以确保数据质量和责任明确。

实施指南

🤖 Block 如何利用 DataHub 赋能 AI 代理

真实案例研究:使用 MCP 在 50+ 平台上扩展数据治理和 AI 运营。

AI 案例研究

→ 浏览我们博客上的所有文章


🏢 深受行业领导者信赖

全球超过3,000家企业在生产环境中运行DataHub——涵盖开源部署与DataHub Cloud两种形态——从超大规模科技公司到受监管的金融机构和医疗服务提供商,不一而足。

按行业划分

🛒 电商与零售: Etsy • Experius • Klarna • LinkedIn • MediaMarkt Saturn • Uphold • Wealthsimple • Wolt

🏥 医疗与生命科学: CVS Health • IOMED • Optum

✈️ 旅行与运输: Cabify • DFDS • Expedia Group • Hurb • Peloton • Viasat

📚 教育与教育科技: ClassDojo • Coursera • Udemy

💰 金融服务: Banksalad • Block • Chime • FIS • Funding Circle • GEICO • Inter&Co • N26 • Santander • 上海华瑞银行 • Stash • Visa

🎮 游戏、娱乐与流媒体: Netflix • Razer • Showroomprive • TypeForm • UKEN Games • Zynga

🚀 科技与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

📊 数据与分析: ABLY • DefinedCrowd • Grofers • 海博科技 • Moloco • PITS Global Data Recovery Services • SpotHero

此外还有数千家使用DataHub Core和DataHub Cloud的企业。

精选客户案例

正在使用DataHub? 如果我们遗漏了您的组织,欢迎随时将贵公司添加到列表中——提交一个PR,或在Slack上告诉我们。


🌐 DataHub生态系统

DataHub是丰富工具与集成生态系统的重要组成部分。

官方代码库

代码库 描述 链接
datahub 核心平台:元数据模型、服务、连接器及 Web 界面 文档
datahub-actions 用于实时响应元数据变化的框架 指南
datahub-helm 适用于 Kubernetes 部署的生产级 Helm Charts Charts
static-assets DataHub 的标识、图片及品牌资源 -

社区插件与集成

项目 描述 维护者
datahub-tools 用于 GraphQL 端点交互的 Python 工具 Notion
dbt-impact-action 用于 dbt 变更影响分析的 GitHub Action Acryl Data
business-glossary-sync-action 通过 GitHub PR 同步业务术语表 Acryl Data
mcp-server-datahub 面向 AI 集成的模型上下文协议(MCP)服务器 Acryl Data
meta-world 配方、自定义数据源及数据转换 社区

按类别分类的集成

📊 BI 与数据分析: Tableau • Looker • Power BI • Superset • Metabase • Mode • Redash

🗄️ 数据仓库: Snowflake • BigQuery • Redshift • Databricks • Synapse • ClickHouse

🔄 数据编排: Airflow • dbt • Dagster • Prefect • Luigi

🤖 机器学习平台: SageMaker • MLflow • Feast • Kubeflow • Weights & Biases

🔗 数据集成: Fivetran • Airbyte • Stitch • Matillion

查看全部 80+ 集成 →


💬 社区与支持

加入成千上万使用 DataHub 构建数据生态的数据从业者!

🗓️ 线上交流会

每月社区例会,包含路线图更新、现场演示和用户案例分享。

💬 获取帮助与建立联系

渠道 用途 链接
Slack 社区 实时聊天、答疑、公告发布 加入 16,000+ 成员
GitHub Discussions 技术讨论、功能需求 发起讨论
GitHub Issues 缺陷报告、功能需求 提交 Issue
Stack Overflow 技术问答(标签:datahub 提出问题
YouTube 教程、演示、演讲 订阅频道
LinkedIn 公司动态、技术博客 关注我们
Twitter/X 快速资讯、社区亮点 关注 @datahubproject

📧 保持关注

🎓 学习资源


🤝 参与贡献

我们❤️来自社区的一切贡献!请参阅 CONTRIBUTING.md 了解环境搭建、贡献指南及参与方式。

Good First Issues 开始你的贡献之旅吧!


📚 资源与学习

📰 精选内容

博客文章与专题:

会议演讲:

播客节目:

🔗 重要链接

资源 链接
📖 官方文档 https://docs.datahub.com
🏠 项目官网 https://datahub.com
🌐 在线演示 https://demo.datahub.com
📊 功能需求 https://support.datahub.com/hc/en-us/requests/new
🗓️ 全体会议安排 https://docs.datahub.com/docs/townhalls
💬 Slack 社区 https://datahub.com/slack
📺 YouTube 频道 https://www.youtube.com/@DataHubCloud
📝 博客 https://datahub.com/blog/
🔗 LinkedIn https://www.linkedin.com/company/72009941
🐦 Twitter/X https://twitter.com/datahubproject
🔒 安全 https://docs.datahub.com/docs/security

📄 许可证

DataHub 是根据 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.

这意味着:

  • ✅ 允许商业使用
  • ✅ 允许修改
  • ✅ 允许分发
  • ✅ 允许专利使用
  • ✅ 允许私人使用

了解更多: 选择许可证 - Apache 2.0


⭐ 如果您觉得 DataHub 有用,请为仓库点亮 Star!⭐

由 DataHub 社区倾心打造 ❤️