你的自托管环境可能并非一夜之间变得复杂。它可能始于一个 PostgreSQL 数据库。然后你添加了 Nextcloud、Grafana、Home Assistant、MinIO 或其他应用。每个应用都有自己数据库、表、配置。你可能还为实验创建了从未删除的测试数据库。
随着环境增长,简单的问题会变得难以回答。哪个应用拥有这个数据库?这个 schema 还在使用吗?删除这个表会破坏其他东西吗?数据仍然存在,但上下文没有了。
这就是元数据要解决的问题。元数据是描述其他数据的数据。它记录所有权、schema、来源,以及表、仪表板、管道等数据资产之间的关系。与其手动追踪数据库和应用,你可以搜索一个中央目录,并了解数据是如何组织的。
OpenMetadata 是一个开源元数据平台。它从数据库、数据仓库、仪表板、消息系统、管道和其他服务收集元数据,构建中央目录。它还跟踪数据血缘,记录数据如何在系统间流动,帮助你理解基础设施中的依赖关系。
本指南将说明如何在 Ubuntu 上使用 Docker Compose 部署 OpenMetadata:配置所需服务、启动平台、连接第一个数据服务、运行元数据摄取。结束时你将得到一个可以随基础设施扩展的 OpenMetadata 实例。
什么是 OpenMetadata
OpenMetadata 是一个开源元数据平台,为你的数据生态系统构建可搜索的地图。它不存储业务数据,而是从数据库、数据仓库、仪表板、管道和其他系统收集 schema、血缘、所有权、文档、数据质量信号和业务上下文等元数据。
它把这些信息组织成统一的元数据图,让你从单一位置发现资产、理解依赖关系并治理数据。
OpenMetadata 不管理你的数据,它管理数据周围的上下文。
你的 PostgreSQL 数据库、仪表板、管道和对象存储继续独立运行。OpenMetadata 连接到这些系统,提取元数据,并揭示它们之间的关系。
这些上下文有助于回答以下问题:
- 谁拥有这个数据集?
- 哪个仪表板依赖这个表?
- 哪个管道创建了这些数据?
- 如果这个列发生变化,哪些下游资产会受影响?
该平台不会取代你现有的工具。它通过元数据把它们连接起来,为你提供数据景观的单一可搜索视图。
OpenMetadata 已经超越传统的数据目录,演变为面向人和 AI 的语义上下文平台。
项目的早期版本主要关注元数据管理和治理。最近的版本把技术元数据、业务语义、血缘、所有权、数据质量、策略和组织知识结合进统一的元数据图。
平台还包含语义搜索和 MCP(模型上下文协议)服务器等功能,允许 AI 助手使用自然语言查询受治理的元数据,同时尊重目录中捕获的关系和上下文。
OpenMetadata 不会告诉你数据包含什么。它告诉你数据意味着什么、来自哪里、谁拥有它、以及依赖它的是什么。
OpenMetadata 实际做什么?
OpenMetadata 不存储应用程序数据。它存储元数据,也就是关于数据资产的信息,并创建中央元数据目录,帮助你从一处发现和理解这些资产。
目录可以包含数据库、表、仪表板、管道、消息主题、机器学习模型和其他受支持服务的元数据。对每个资产,OpenMetadata 记录其 schema、所有者、描述、标签,以及与其他资产的关系。
这些信息通过元数据摄取收集。元数据摄取是使用连接器和工作流从服务中提取元数据并导入目录的过程。应用程序数据保留在原始数据库或服务中;OpenMetadata 只收集描述和组织资产所需的元数据。
当需要回答日常问题时,好处就很明显:哪个表存储客户订单?哪个仪表板使用这个表?能否安全重命名一个列?与其检查多个系统,不如搜索目录并查看资产之间的关系。
OpenMetadata 还捕获数据血缘。数据血缘显示表、管道和仪表板等资产之间的上游和下游依赖关系,帮助你在变更进入生产环境前识别其影响。
OpenMetadata 与其说是存储数据,不如说是帮助你理解数据。
为什么选择 OpenMetadata?
有几个开源元数据平台可用。OpenMetadata、DataHub、Apache Atlas 和 Amundsen 都帮助你发现和理解数据。它们目标相同,但在架构、部署和侧重的功能上有所不同。
本指南使用 OpenMetadata,因为它文档完善、提供官方 Docker Compose 部署,并通过内置元数据连接器支持广泛的服务。它还同时涵盖元数据管理、血缘、文档和治理,是自托管环境的实用选择。
其他项目同样成熟且维护活跃。如果你已经在使用 DataHub、Apache Atlas 或 Amundsen,没有技术上的理由必须切换。
本指南的部署步骤专注于 OpenMetadata,因为它为希望构建自托管元数据目录的用户提供了直接的起点。
自托管 OpenMetadata 适合你吗?
OpenMetadata 很适合偏好开源软件并希望完全控制基础设施的团队。它特别适合初创公司、中小企业和已经熟悉 Linux 服务器、Docker 或 Kubernetes 的工程团队。
但大型组织通常已有数据治理框架、合规要求和专门的数据团队。在这些环境中,部署元数据平台只是更广泛治理计划的一部分,该计划还包括策略、所有权和运营流程。
如果你的组织正在建立或扩展正式的数据治理计划,外部专业知识可以帮助定义流程并避免常见实施陷阱。请自行调研,寻找专注于治理策略、所有权模型、合规性、数据质量、元数据管理和组织工作流的可靠商业服务,以补充 OpenMetadata 等平台,而不是取代它们。
对于偏好开源、采用 self-managed 方式的团队,本指南的其余部分将引导你在 Ubuntu Linux 上使用 Docker Compose 部署 OpenMetadata。
开始前需要什么?
OpenMetadata 由多个协同工作的服务组成。OpenMetadata 服务器把元数据存储在 PostgreSQL 等后端数据库中,并使用 Elasticsearch 或 OpenSearch 索引元数据以实现快速搜索。
计划中的元数据摄取由单独的摄取服务处理,它运行工作流从数据库、仪表板、管道和其他受支持的服务收集元数据。Docker Compose 允许你把这些组件一起部署。
本指南以 Ubuntu 26.04 LTS 为例。
搜索引擎通常是首次使用者最先感到压力的组件。它维护索引以便快速搜索元数据,但索引也会增加内存使用。在 RAM 有限的系统上,Elasticsearch 或 OpenSearch 通常是第一个遇到资源压力的服务。生产部署通常需要比小型评估环境多得多的 CPU、内存和存储。
如果系统满足这些要求,你就可以使用 Docker Compose 部署 OpenMetadata 了。
在 Ubuntu 26.04 LTS 上使用 Docker Compose 安装 OpenMetadata
可以使用 Docker 和 Docker Compose 在 Linux 上部署 OpenMetadata。
1. 安装 Docker Engine 和 Docker Compose
以下命令需要 sudo 权限。安装前先移除任何冲突的软件包:
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)
设置 Docker 的 apt 仓库:
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<INNERDOC
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
INNERDOC
sudo apt update
安装 Docker Engine:
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
确认守护进程正在运行:
sudo systemctl status docker
如果没有运行,启动它:
sudo systemctl start docker
免 sudo 运行 Docker:
sudo usermod -aG docker $USER
newgrp docker
注销并重新登录使更改生效。
2. 创建工作目录
为 OpenMetadata 部署创建专用目录。该目录存放 Docker Compose 文件和相关的部署文件,便于未来的升级、备份和故障排除。
运行以下命令:
mkdir openmetadata-docker
cd openmetadata-docker
官方 OpenMetadata 文档使用 openmetadata-docker 作为目录名,但你可以选择任何名称。许多 Linux 管理员会把 Docker Compose 项目放在 ~/docker 或 /opt 等专用位置,以保持服务组织有序。
Docker Compose 默认从当前工作目录运行,除非你明确指定不同的 Compose 文件。因此,请在本指南的剩余部分中从该目录运行所有命令。
3. 下载官方 Docker Compose 文件
下一步是下载由 OpenMetadata 项目维护的 Docker Compose 文件。
Docker Compose 文件定义了运行应用所需的容器、网络、卷、端口和环境变量。使用官方 Compose 文件可以让部署与当前 OpenMetadata 版本保持一致,并简化未来的升级。
本指南使用 PostgreSQL,因此从最新的 OpenMetadata 版本下载 docker-compose-postgres.yml 文件。访问 OpenMetadata GitHub Releases 页面 确认最新的发布标签,然后下载对应的 Compose 文件:
curl -LO https://github.com/open-metadata/OpenMetadata/releases/download/<release>/docker-compose-postgres.yml
运行前把 <release> 替换为最新的发布标签。截至撰写本指南时,最新版本是 1.13.3。在 URL 中替换该版本:
curl -LO https://github.com/open-metadata/OpenMetadata/releases/download/1.13.3-release/docker-compose-postgres.yml
下载完成后,确认文件存在:
ls -l
你应该会在工作目录看到一个名为 docker-compose-postgres.yml 的文件。现在不要启动部署。下一节会先审查 Compose 文件,了解每个服务的用途,然后再启动容器。
4. 了解 Docker Compose 将部署什么
启动容器之前,先了解它们如何协同工作。OpenMetadata 不是单个应用,而是由多个服务组成,每个服务负责平台的不同部分。
Quick Start 部署会启动以下容器:OpenMetadata Server、PostgreSQL、Elasticsearch 和负责编排工作流的 Ingestion 服务。
注意: Quick Start 部署默认使用 Elasticsearch。生产部署可以使用 Elasticsearch 或 OpenSearch 作为搜索引擎。
Docker Compose 还会创建专用网络,让容器之间可以通信;并为有状态服务创建命名 Docker 卷,使元数据在容器重启和升级后仍然存在。
整体架构如下:
Supported Services
Databases • Dashboards • Pipelines • Messaging
│
▼
OpenMetadata Ingestion
(Metadata Ingestion Workflows)
│
▼
OpenMetadata Server
Web UI • REST API
│ │
▼ ▼
PostgreSQL Elasticsearch
(Search Index)
元数据始终流经 OpenMetadata 服务器。摄取服务从受支持的服务提取元数据并发送给服务器;服务器把元数据存入 PostgreSQL,并在 Elasticsearch 中建立索引,让你通过 Web 界面搜索和浏览。
你不需要单独管理这些容器。Docker Compose 会创建网络、配置卷,并以正确配置启动每个服务。从你的角度看,整个平台就像单个应用。
5. 审查配置
启动部署前,花几分钟审查 Compose 文件。你不需要理解每一行,但快速浏览有助于了解部署结构。
在文本编辑器中打开文件:
nano docker-compose-postgres.yml
你会看到几个熟悉的章节。
对于首次部署,保持配置不变。官方 Quick Start 设计为使用默认设置工作,这是验证安装是否正常的最简单方法。(docs.open-metadata.org)
部署运行后,你可以返回此文件自定义端口、存储、身份验证或其他设置。
下一节解释 Docker 如何存储 OpenMetadata 的数据,以及默认卷为什么重要。
6. 了解持久存储
Docker 容器是临时的,但元数据不是。
容器被重新创建时,容器内存储的内容会被替换。为防止数据丢失,OpenMetadata 把持久数据存储在容器外部。这样你可以重启、更新或重新创建容器,而无需重建元数据目录。
Quick Start 部署会为其有状态服务持久化数据。
Docker Compose 会自动把新容器连接到现有存储。只要持久存储保持完整,元数据就会在容器重启和升级后保留。
值得记住的命令:
docker compose stop:停止容器但保留所有持久数据。docker compose start:重启现有容器并继续使用相同数据。docker compose down:移除容器和网络,但保留持久数据。docker compose down --volumes:还会移除关联卷,永久删除存储的数据。
如果你计划在评估之外使用 OpenMetadata,请把持久存储纳入备份策略。容器很容易重新创建,元数据则不然。
下一步是启动部署,让 Docker Compose 自动创建容器和存储。
7. 启动部署
现在可以启动 OpenMetadata 栈。
docker compose up 命令读取 Compose 文件,创建所需的 Docker 资源,并启动部署中定义的服务。
首次运行期间,Docker 还会下载所需容器镜像,因此部署可能需要几分钟,具体取决于网络连接和系统性能。
启动部署:
docker compose -f docker-compose-postgres.yml up -d
命令选项很简单。
首次部署时,Docker Compose 通常会:
- 下载所需容器镜像。
- 创建 Compose 文件中定义的网络和卷(如果尚不存在)。
- 启动 OpenMetadata 服务。
以后再次部署通常会快得多,因为 Docker 会复用本机已存储的镜像。
如果命令立即返回,不用担心。Docker Compose 启动容器后会退出,服务仍在后台继续初始化。某些组件,尤其是 PostgreSQL 和 Elasticsearch,可能需要额外时间才能接受连接。
下一步是在打开 OpenMetadata Web 界面之前,确认每个服务都成功启动。
8. 验证部署
容器可能处于 running 状态,但其中的应用仍在初始化。因此先验证部署再继续。
检查服务状态:
docker compose -f docker-compose-postgres.yml ps
你应该看到所有服务都处于 running (up) 状态。根据 Docker Compose 版本和服务定义,部分容器在通过健康检查后还会报告 healthy 状态。
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
openmetadata_elasticsearch docker.elastic.co/elasticsearch/elasticsearch:9.3.0 "/bin/tini -- /usr/l…" elasticsearch 3 minutes ago Up 3 minutes (healthy) 0.0.0.0:9200->9200/tcp, [::]:9200->9200/tcp, 0.0.0.0:9300->9300/tcp, [::]:9300->9300/tcp
openmetadata_ingestion docker.getcollate.io/openmetadata/ingestion:1.13.3 "/bin/bash /opt/airf…" ingestion 3 minutes ago Up About a minute 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp
openmetadata_postgresql docker.getcollate.io/openmetadata/postgresql:1.13.3 "docker-entrypoint.s…" postgresql 3 minutes ago Up 3 minutes (healthy) 0.0.0.0:5432->5432/tcp, [::]:5432->5432/tcp
openmetadata_server docker.getcollate.io/openmetadata/server:1.13.3 "/bin/bash /openmeta…" openmetadata-server 3 minutes ago Up About a minute (health: starting) 0.0.0.0:8585-8586->8585-8586/tcp, [::]:8585-8586->8585-8586/tcp
如果某个服务未运行或反复重启,检查其日志:
docker compose -f docker-compose-postgres.yml logs -f <service-name>
把 <service-name> 替换为要检查的服务。实时查看日志通常是识别配置错误、缺失依赖或启动失败的最快方法。
请记住,容器启动和应用就绪是两回事。PostgreSQL 和 Elasticsearch 可能启动很快,而 OpenMetadata 会在后台继续初始化。打开 Web 界面前,给部署一两分钟完成初始化。
所有服务运行且无错误后,就可以访问 OpenMetadata Web 界面了。
9. 登录 OpenMetadata
打开浏览器并导航到:
http://localhost:8585
如果 OpenMetadata 运行在远程服务器上,把 localhost 替换为服务器的 IP 地址或主机名。
登录页面出现后,使用官方 Quick Start 部署提供的默认管理员账户登录。
登录后应该会看到 OpenMetadata 仪表板。目录为空是正常的。OpenMetadata 只会在你连接一个或多个受支持的数据服务并运行摄取工作流后显示元数据。
如果登录页面没有加载,再等一分钟,然后重复上一节的验证步骤。某些服务,尤其是 Elasticsearch,可能仍在完成初始化。
现在部署已就绪。下一步是连接第一个数据服务并开始摄取元数据。
安全提示: 默认管理员账户仅用于评估和测试。如果计划保留此部署,请在初始设置中创建自己的管理员账户,并替换或删除默认账户。
10. 登录 Apache Airflow
OpenMetadata Web 界面用于创建和管理元数据摄取工作流。在默认 Docker Compose 部署中,这些工作流由 Apache Airflow 执行,它作为编排后端。当你从 OpenMetadata UI 部署摄取工作流时,平台会与 Airflow 通信,以创建、调度和监控相应工作流。
打开浏览器并导航到以下 URL,进入 Airflow Web 界面:
http://<server-ip>:8080
如果 OpenMetadata 运行在本地机器上,使用:
http://localhost:8080
Airflow Web 界面的默认用户名和密码是 admin/admin。
如果你在部署前修改了 AIRFLOW_ADMIN_USER 或 AIRFLOW_ADMIN_PASSWORD 环境变量,请使用这些凭据。
登录后确认:
- Airflow 仪表板加载成功。
- DAGs 页面可访问。
- 示例 DAG 存在。
示例 DAG 随 Quick Start 部署提供,用于演示 Airflow 如何编排工作流,同时确认 Airflow 实例初始化成功。
11. 通过 Airflow 将示例数据加载到 OpenMetadata
在 Airflow 中你会看到一些示例 DAG,它们摄取示例数据并作为示例。
要导入示例数据,请到 Airflow 仪表板的 DAGs 部分,单击 sample_data DAG 旁边的播放按钮。这会下载并加载预打包的示例数据到 OpenMetadata。
然后返回 OpenMetadata 仪表板,验证导入的示例数据。
如你所见,有一个包含与 Shopify 销售相关的 schema 的模拟数据库。
请熟悉 OpenMetadata 和 Airflow 中的各项选项。基本使用中,入门指南已经足够。要深入了解 OpenMetadata,请阅读下面的 Admin 和 Data User 指南:
12. 故障排除
如果无法访问 Airflow Web 界面,先确认 Airflow 容器正在运行:
docker ps
如果 Airflow 容器缺失或反复重启,检查其日志:
docker logs <airflow-container-name>
如果 Airflow UI 可用,但部署后摄取工作流没有出现,请检查 Airflow 日志和 OpenMetadata 服务器日志。在 Docker Compose Quick Start 中,Airflow 负责部署和执行摄取工作流,因此失败通常反映在这两个服务中的一个或两个中。
真正重要的功能
OpenMetadata 功能很多,但第一天不需要全部使用。最有价值的功能是那些帮助你更快找到和理解数据的功能。
1. 快速查找事物
搜索可能是你最常用的功能。
环境增长后,记住表的位置会变得困难。你可能记得部分名称、列名或描述,但不记得包含它的数据库。
OpenMetadata 索引元数据,让你从单一界面跨数据库、表、视图、仪表板、管道、术语表术语、标签、用户、团队和其他受支持资产进行搜索。你还可以用资产类型、服务、所有者或标签等过滤器缩小结果范围。
这减少了浏览数据库的时间,也更容易找到需要的信息。
2. 使用标签组织元数据
找到资产只是第一步。你还需要一种组织方式。
标签允许你用适合环境的标签对资产分类。例如,可以标记生产系统、归档数据集,或包含个人身份信息(PII)的资产。
标签会被索引,因此能改善搜索,并让你在不更改底层数据库的情况下对相关资产分组。
3. 理解依赖关系
更改表之前,你需要了解它依赖什么,以及什么依赖它。
数据血缘捕获数据资产之间的关系,显示数据来自哪里、如何通过管道移动,以及哪些下游表、仪表板或其他资产依赖它。OpenMetadata 同时支持表级(table-level)和列级(column-level)血缘,让你更清楚地看到变更如何流经环境。
这些上下文让影响分析更容易。重命名列、修改表或退役管道之前,你可以识别可能受影响的下游资产,而不是在部署后才发现问题。
OpenMetadata 还允许为资产分配所有者。每个数据集、仪表板或管道都有明确的联系人。当你有疑问或需要批准变更时,你知道该问谁,而不是翻源代码或聊天记录。
4. 记录重要内容
每个长期运行的系统都会积累只存在于某人记忆中的知识。
OpenMetadata 允许为数据库、schema、表、列、仪表板、管道和其他资产添加描述。描述会成为元数据目录的一部分,并出现在搜索结果中,让其他人更容易理解资产的用途和存在原因。
最好的文档往往最简单。一段解释表用途或列含义的简短描述,可以省去阅读应用代码或逆向 schema 的时间。
搜索、标签和文档共同解决一个常见问题:让数据更容易被发现、理解和维护。
5. 防止错误
大多数生产问题来自缺少上下文,而不是缺少数据。
没有描述的表会迫使人们猜测用途。没有共享定义的业务术语可能带来不一致的报告。一个最近未更新的数据集可能看起来仍然可信,即使它已不再适合做决策(decision-making)。
OpenMetadata 有助于减少这种不确定性。
描述解释资产用途;业务术语表为业务术语提供共享定义;新鲜度和其他可靠性信号帮助你判断数据集在使用前是否仍然足够新。
这些功能不会自动防止错误,而是通过提供数据库本身无法提供的上下文,帮助人们做出更明智的决策。
6. 帮助未来的自己
元数据目录的最大收益通常出现在安装几个月后。六个月后,你可能不记得某个表为什么存在、谁创建了它,或哪些仪表板依赖它。新团队成员更不会知道。
OpenMetadata 把知识保存在资产旁边。
与其从 SQL 脚本、Git 历史、工单和聊天消息中重建信息,你可以搜索目录、查看描述、检查血缘、识别所有者,并了解资产如何融入整体环境。
这也会改善灾难恢复。恢复数据库只是过程的一部分;你还需要了解数据库如何连接到应用、管道、仪表板和其他系统。元数据目录保留了这种操作上下文。
使用 OpenMetadata 越久,它就越有价值。每个描述、所有者分配、术语表术语和血缘关系都保存了一份不再只存在于某人记忆中的知识。
要避免的常见错误
安装 OpenMetadata 只需几分钟,但构建一个保持准确和可信的目录需要持续维护。
请把目录视为基础设施的一部分,而不是一次性部署。投入在所有权、文档、备份和定期摄取上的时间,会随着环境增长得到回报。
如果今天我要设置一个新实例,我会避免这些错误。
1. 立即连接所有数据源
平台运行后,马上连接每个数据库很诱人。
从一两个重要系统开始。先理解服务、摄取工作流、所有权和文档如何工作,再扩展目录。一个准确的小目录,比一个充满不完整信息的大目录更有价值。
2. 把所有权留到以后
所有权很容易推迟,因为平台在没有它时也能工作。
但问题往往在之后出现。数据集没有所有者时,简单问题也变得难回答:没人知道谁维护它、谁应批准变更、或出了问题该找谁。
在添加新资产时分配所有者,比几个月后补记容易得多。
3. 跳过备份
随着时间推移,元数据目录会成为宝贵的知识库。
描述、所有权、术语表术语和其他元数据,通常代表无法快速重新创建的工作。把 OpenMetadata 元数据数据库纳入常规备份策略,以便出问题时恢复信息。必要时,搜索索引可以从存储的元数据重建。
4. 没有 HTTPS 就运行
Docker Compose Quick Start 是为评估设计的。
如果其他人会访问实例,请把它放在反向代理后面,并在共享环境中使用前启用 HTTPS。加密流量可以保护凭据和元数据。
5. 忘记调度和监控元数据摄取
元数据目录只有在反映当前环境时才有用。
请定期调度摄取工作流,并确认它们持续成功。即使 OpenMetadata 服务器运行正常,失败的摄取作业也会让目录过时。
6. 低估基础设施要求
OpenMetadata 只是部署的一部分。
元数据数据库、搜索引擎和摄取服务也需要资源。目录增长后,搜索索引会更耗资源,因此要为整个栈规划容量,而不是只针对 OpenMetadata 应用调整服务器。官方生产指南对服务器、数据库、搜索引擎和摄取组件分别给出了资源建议。
长期运行 OpenMetadata
部署 OpenMetadata 只需几分钟,但保持可靠需要持续维护。
目录增长后,它会成为基础设施的一部分。请像对待其他生产服务一样对待它:保持更新、保护数据、监控健康、规划增长。
1. 保持平台更新
OpenMetadata 会发布包含错误修复、安全更新、连接器改进和新功能的新版本。
升级前查看发布说明,确认部署满足受支持的版本要求。
始终先备份元数据数据库,因为 OpenMetadata 在升级期间会执行数据库 schema 迁移。
升级后,如果发布说明要求,请完成必要的升级后任务,例如重建搜索索引或重新部署摄取管道。
如有可能,先在非生产环境测试升级,再应用到主要部署。
2. 保护你的元数据
容器是临时的,元数据不是。
持久 Docker 卷可以保证数据在容器重启和重建后仍然存在,但不能替代备份。把元数据数据库纳入常规备份策略,以便在硬件故障、意外删除或升级失败后恢复目录。
元数据数据库是事实来源。它保存目录、描述、所有权、术语表术语、血缘和其他治理信息。搜索索引主要用于发现,一般可以从数据库中的元数据重建。
3. 监控整个栈
运行中的容器并不总是意味着健康的部署。
请监控 OpenMetadata 服务器、元数据数据库、搜索引擎和摄取服务。
定期检查计划中的摄取工作流,确认它们持续成功完成。即使 Web 界面正常,失败的摄取工作流也可能让目录过时。
同时监控 CPU、内存、磁盘空间和应用日志。小问题在影响用户之前更容易解决。
4. 保护访问
Docker Compose Quick Start 是为评估设计的。
对于长期部署,请把 OpenMetadata 放在反向代理(如 Nginx、Apache HTTP Server 或 Traefik)后面。
在反向代理处使用可信 TLS 证书终止 HTTPS,并只公开需要公开访问的服务。官方文档包含示例 Nginx 反向代理配置。
如果服务器可通过互联网访问,请保持操作系统更新、保护 SSH 访问并启用防火墙限制入站流量。
5. 规划增长
环境扩展后,资源需求会增加。
OpenMetadata 服务器、元数据数据库、搜索引擎和摄取服务都会消耗 CPU、内存和存储。连接更多数据源后,摄取负载会增加,搜索索引也会增长。请监控资源使用情况,并扩展整个栈,而不只是 OpenMetadata 服务器。
如果预期长期生产使用,可以考虑从捆绑的 Quick Start 服务迁移到托管或专用的 PostgreSQL/MySQL、Elasticsearch/OpenSearch 和外部摄取服务,正如官方部署指南所建议。
OpenMetadata 会随着积累关于环境的知识而变得更有价值。定期升级、可靠备份、健康的摄取工作流和常规监控,能确保这些知识在你最需要时保持准确、可搜索和可用。
常见问题(FAQ)
问:OpenMetadata 用于什么?
答:OpenMetadata 是一个开源元数据平台,用于编目数据库、记录 schema、跟踪数据血缘、分配所有权,并改善跨数据平台的数据治理。
问:我可以自托管 OpenMetadata 吗?
答:可以。OpenMetadata 提供官方 Docker Compose 部署,允许你在 Ubuntu 等 Linux 服务器上自托管平台,用于开发和评估;更大的环境还可以选择生产部署方案。
问:OpenMetadata 需要 Elasticsearch 吗?
答:是的。标准部署使用 Elasticsearch 进行索引和搜索。根据版本和部署架构,生产部署也可能使用受支持的 OpenSearch 配置。
问:OpenMetadata 需要多少 RAM?
答:官方 Quick Start 可以在普通硬件上测试运行,但生产部署需要更多资源。内存需求取决于连接的服务数量、元数据量和搜索索引工作负载。
问:OpenMetadata 免费吗?
答:是的。OpenMetadata 以 Apache 2.0 许可证作为开源软件发布。
最后的想法
安装 OpenMetadata 不会自动组织你的基础设施。它不会重命名表、删除未使用的数据库、编写文档或决定谁拥有数据集。这些仍然是你自己的责任。
它提供的是经常缺失的上下文。
与其把数据库、管道、仪表板和服务视为孤立系统,你可以看到它们之间的关系。依赖关系变得可见,所有权变得更清晰,变更也更容易评估,因为它们基于上下文而非猜测。
这就是元数据目录的真正价值。
随着环境增长,它会积累知识。一些知识存在于文档中,一些存在于源代码中,还有很多只存在于记忆里。元数据目录把这些知识汇集起来,使其可搜索,并保持与它所描述的系统连接。
无论你管理的是家庭实验室、初创公司还是大型数据平台,目标都一样:减少弄清楚系统如何组合的时间,把更多时间用于改进它们。
软件只是起点。真正的收益来自足够了解你的环境,以便在增长中做出有信心的决策。这正是元数据提供的价值,也是元数据目录逐年变得更有价值的原因。
资源:



