概念
源码地址:https://github.com/open-metadata/OpenMetadata
官方文档:https://docs.open-metadata.org/latest
OpenMetadata是一个开源的企业级元数据管理平台,它的核心目标是为你的数据资产建立一个统一的、可供搜索和协作的"数据目录"。
可以理解为用于管理"关于数据的数据"(即元数据)的中台系统。
因为 OpenMetadata 的核心后端服务是用 Java 构建的,并且它的用户界面(UI)主要使用 React 开发。
所以正是因为团队主要是以Java作为开发语言,以及整体运维体系来说,还是Openmetadata更加适合我们,并进行二次开发。
|------|-------------------------------------------------------------|
| 维度 | 说明 |
| 核心定位 | 统一元数据管理平台,用于数据发现、治理和协作。 |
| 主要功能 | 数据发现与搜索、列级数据血缘追踪、数据质量管理、数据资产目录、团队协作(分配所有者、打标签)等。 |
| 技术架构 | 后端基于 Java (Spring Boot),前端使用React,依赖MySQL、Elasticsearch等服务。 |
| 应用场景 | 企业内部数据资产盘点、追溯数据问题根源(影响分析)、保障数据质量、为数据湖/数据仓库提供上层治理。 |
本地部署(使用 Docker Compose)
操作系统:macOS

安装Docker(如已安装请跳过)
- 从官网 下载 macOS 版安装包。

- 拖动应用图标到"应用程序"文件夹完成安装

- 启动应用,等待菜单栏出现 Docker 图标并显示运行状态。
直接下载:
暂时无法在Lark文档外展示此内容
- 安装后验证
docker --version docker-compose --version

部署 OpenMetadata
直接安装
# 1. 下载官方编排文件 curl -o docker-compose.yml https://raw.githubusercontent.com/open-metadata/OpenMetadata/main/docker-compose.yml # 2. 启动所有服务(在后台运行) docker compose up -d
使用国内镜像
# 使用 FastGit 的镜像(推荐) curl -o docker-compose.yml https://raw.fastgit.org/open-metadata/OpenMetadata/main/docker-compose.yml # 或使用 GitHub 的镜像站 curl -o docker-compose.yml https://ghproxy.com/https://raw.githubusercontent.com/open-metadata/OpenMetadata/main/docker-compose.yml
手动创建文件
在执行命令的目录中手动创建一个名为 docker-compose.yml 的文件,然后粘贴保存。
version: "3.9" services: mysql: image: openmetadata/db:1.3.2 restart: always environment: MYSQL_ROOT_PASSWORD: password ports: - 3306:3306 elasticsearch: image: openmetadata/elasticsearch:1.3.2 restart: always environment: ES_JAVA_OPTS: "-Xms512m -Xmx512m" discovery.type: single-node ports: - 9200:9200 openmetadata-server: image: openmetadata/server:1.3.2 restart: always ports: - 8585:8585 environment: DB_HOST: mysql DB_PORT: 3306 DB_USER: root DB_PASSWORD: password ELASTICSEARCH_HOST: elasticsearch ELASTICSEARCH_PORT: 9200 depends_on: - mysql - elasticsearch openmetadata-ingestion: image: openmetadata/ingestion:1.3.2 restart: always environment: DB_HOST: mysql DB_PORT: 3306 DB_USER: root DB_PASSWORD: password ELASTICSEARCH_HOST: elasticsearch ELASTICSEARCH_PORT: 9200 depends_on: - mysql - elasticsearch
启动服务
必须在openmetadata的目录下
docker compose up -d

注意
跳转链接的时候可能会报错

打开docker


替换成:
{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "registry-mirrors": [ "https://mirror.ccs.tencentyun.com", "http://hub-mirror.c.163.com", "https://reg-mirror.qiniu.com" ] }
验证配置是否生效
Docker Desktop 重启成功后,打开终端,输入以下命令并回车:
docker info
在输出的信息中查找 Registry Mirrors。如果能看到类似下面的内容,并且包含了刚才添加的地址(如 mirror.ccs.tencentyun.com),就说明配置成功了
配置生效后,回到 OpenMetadata 项目目录,再次执行启动命令:
cd ~/Downloads/OpenMetadata docker compose up -d
最后 本地部署以失败告终,主要原因还在于网络问题,切换不同的网络docker pull都会失败,最后只能单个下载,load到docker里,mqsql数据库又报错迁移问题,官网拿到的yml配置也不对,所以我觉得主要还是网络问题,网络可以的话,就不会出现后面的那些配置问题
离线包:
测试
访问官方Demo环境:https://sandbox.open-metadata.org/
-
用户名:admin
-
密码:admin
AskCollate - AI智能助手 🤖


功能:自然语言查询数据资产 用法: • "显示所有客户表" • "哪些表包含个人身份信息?" • "找到上个月最活跃的数据资产" • "帮我查看订单表的数据血缘"
探索 - 数据发现与搜索 🔍


主要功能: • 全局搜索:按表名、列名、描述搜索 • 筛选器:按数据库、标签、所有者、领域筛选 • 排序:按流行度、最近更新、名称排序 • 收藏:标记常用资产
血缘关系 - 数据溯源追踪 🕸️
查看数据如何流动:
源表 → 转换/ETL → 目标表
使用场景:
-
影响分析:某表结构变更,会影响哪些下游报表?
-
根因分析:报表数据异常,是哪个上游表的问题?
-
合规追踪:敏感数据从哪里来,流向哪里?

观察 - 监控与告警 📊
功能:实时监控数据健康状况 包含: • 数据质量测试结果 • 元数据变更历史 • 数据新鲜度检查 • SLA监控
可以配置的监控项:
数据质量测试: - 行数监控:表行数不应为0 - 空值检查:关键列不能为空 - 唯一性检查:ID列必须唯一 - 值域检查:年龄在0-120之间 告警通知: - 邮件通知 - Slack/Teams消息 - Webhook到其他系统

洞察 - 分析与报告 📈
功能:提供数据资产的统计分析 • 数据资产分布(按类型、领域) • 元数据覆盖率统计 • 数据质量评分 • 团队活跃度分析

域 - 数据域管理 🏢
功能:按业务领域组织数据 类似于"文件夹"结构,用于数据分类
示例领域结构:
公司数据 ├── 客户领域 │ ├── 客户基本信息 │ ├── 客户交易记录 │ └── 客户服务记录 ├── 产品领域 │ ├── 产品目录 │ ├── 库存管理 │ └── 定价信息 └── 财务领域 ├── 收入数据 ├── 成本数据 └── 财务报表
操作:
-
创建领域(如"营销领域")
-
将相关表分配到该领域
-
设置领域所有者
-
配置领域特定策略


治理 - 数据治理框架 ⚖️
功能:确保数据质量、安全和合规 包含: • 策略管理 • 访问控制 • 数据分类 • 合规性检查
具体功能:
标签管理: - 业务标签:customer_data, financial_data - 敏感度标签:PII, confidential, public - 技术标签:raw, curated, aggregate 策略配置: - 谁可以查看敏感数据 - 哪些表需要定期质量检查 - 数据保留策略


Knowledge Center - 知识库 📚
功能:文档和最佳实践 • 数据字典 • 业务术语表 • 使用指南 • 最佳实践文档
内容示例:
术语定义: - "活跃用户":过去30天内有登录行为的用户 - "GMV":Gross Merchandise Volume,商品交易总额 使用指南: - 如何添加表描述 - 数据质量测试配置 - API调用示例

SQL Studio Beta - SQL查询工具 💻
功能:直接在平台内运行SQL查询 特点: • 语法高亮和自动补全 • 查询历史记录 • 结果可视化 • 查询性能分析
使用示例:
-- 查找所有包含邮箱的表 SELECT table_schema, table_name, column_name FROM openmetadata.catalog WHERE column_name LIKE '%email%' AND data_type LIKE '%varchar%';

部署OpenMetadata的常见模式
模式1:直接使用官方镜像(最常见)
也就是本文部署的
# 这就是之前尝试的方式 - 使用Docker Compose services: openmetadata-server: image: openmetadata/server:latest # 直接拉官方镜像 # 不需要修改源码
优点:
-
快速部署
-
官方维护升级
-
稳定可靠
缺点:
-
定制化有限
-
二次开发需要额外配置
模式2:源代码定制化部署
# 有自己的代码仓库 git clone https://github.com/open-metadata/OpenMetadata.git # ↓ # 修改源码(UI/后端逻辑) # ↓ # 自己构建镜像 mvn clean install -DskipTests docker build -t mycompany/openmetadata:custom . # ↓ # 部署自己的镜像
模式3:混合模式
前端:使用官方镜像 后端:自定义连接器 + 插件 ↓ 通过配置文件扩展功能 ↓ 无需修改核心代码
