Metis:构建下一代数据管理平台,统一元数据、数据治理与数据血缘 Meta Description本文介绍某海外住宿平台如何将数据目录升级为下一代数据管理平台 Metis通过统一元数据服务、数据门户和数据血缘服务实现大规模数据资产管理、数据治理、数据质量提升和数据仓库可观测性建设。某海外住宿平台如何将数据目录演进为一个面向大规模数据仓库管理与治理的平台。引言为什么需要下一代数据管理平台我们的目标是帮助公司在大规模场景下管理复杂的数据生态系统。要做到这一点我们必须准确了解生态系统中的所有数据资产以及这些资产之间的相互关系。换句话说我们需要准确、可信的元数据。数据管理平台 Metis 正是为此而生。它以希腊神话中的智慧女神 Metis 命名旨在确保公司能够在大规模场景下采集、管理并使用可信元数据。对于大型数据仓库而言元数据管理、数据治理和数据血缘并不是孤立能力。只有把数据资产、所有权、质量、合规、搜索发现和血缘关系统一起来团队才能真正提升数据可信度和使用效率。从数据目录到数据管理平台Metis 是公司现有元数据产品和基础设施的一次系统性升级。最早的数据门户是我们推动数据民主化的第一次尝试。它成功帮助数据用户找到可信的数据资产显著提升了生产力。从当时来看这套系统也具有相当前瞻性的设计。随着数据可靠性和合规监管变得越来越重要我们需要更全面、更深入地理解数据的转换过程。于是我们采用某开源血缘分析项目作为数据血缘解决方案。该方案为 SLA Tracker 等产品提供支持例如数据及时性可视化产品。它将数据上线时间元数据与血缘信息结合起来从而帮助我们调试上游数据延迟问题。随着公司对元数据的需求持续增加并逐渐扩展到成本管理、数据质量等更多领域我们对数据目录的要求也进一步提升。我们需要它具备以下能力管理数据资产及其描述性元数据提供提升数据质量的保障措施和建议保留数据集历史记录既便于调试也满足治理需求。从实践角度看数据管理平台建设不仅是技术架构升级也是一项跨团队、跨流程的长期工程。企业在推进类似项目时可以借助 PingCode 这类智能化研发管理工具把目标、需求、评审、开发、测试、发布和 Wiki 知识沉淀串联起来让数据治理相关工作更容易被跟踪和复盘如果团队更关注任务协作、文档、日历、甘特图、工时和审批等通用协同场景也可以结合 Worktile 这类项目协作系统提升项目推进效率。我们很快意识到数据管理必须作为一项独立能力持续发展。因此我们将 Metis 打造成了访问所有数据元数据的一站式平台。Metis 数据管理平台包含哪些能力Metis 由三大核心产品组成数据门户、统一元数据服务也就是 UMS以及数据血缘服务。这个平台使公司能够管理跨多个领域的数百万个数据资产。它支持的部分资产包括Hive 和 Trino 数据集由公司指标平台 Minerva 支持的指标和维度来自 Superset 和某商业 BI 工具的图表与仪表盘数据模型包括经过内部认证的数据模型机器学习特征和模型公司内部团队与员工信息。严格来说它们不是数据资产但对支持高质量的数据所有权并确保上述数据资产的元数据保持最新至关重要。Metis 架构统一元数据、搜索与血缘服务从宏观层面看Metis 由以下几个部分组成数据门户面向用户提供数据目录和管理界面。Viaduct公司内部的 GraphQL API 层用于对离线数据生态系统进行建模。UMS Core 服务后端核心服务包含元数据管理所需的系统架构和业务逻辑。元数据存储主要包括以下几类MySQL主要用于存储需要集中管理的关键元数据血缘图一种集中式服务用于收集和提供数据血缘信息Elasticsearch支持搜索与发现类场景。离线组件位于 UMS Core 服务之外用于执行离线任务例如离线元数据一致性检查和策略执行。离线数据集将离线元数据导出为数据集用于分析场景。数据门户数据资产搜索与管理入口数据门户是公司数据目录的用户界面。用户可以在这里查找和管理 Metis 支持的所有资产。它是一个使用 React 和 TypeScript 构建的单页应用因此具备足够的灵活性可以支持数据管理和数据治理所需的各类工作流。前端通过 GraphQL API 与 UMS 以及其他服务通信。这样设计非常关键因为我们希望避免按顺序获取血缘信息也希望避免一次性过度获取大量元数据从而确保流畅的用户体验。搜索与发现让可信数据资产更容易被找到数据门户的使用体验始于搜索。无论是数据使用者还是数据所有者都需要通过搜索找到所需资源。在设计搜索与发现体验时我们遵循了两个原则第一在搜索结果中直接展示相关元数据帮助用户找到真正需要的数据资产。第二如果用户并不清楚自己具体需要哪个数据资产系统应优先展示高质量、常用且更可信的数据资产。因此搜索结果通常会优先返回高质量、经过认证的数据集并展示描述、近期用户数量、最后修改时间等信息帮助用户判断应该选择哪个资产。管理能力从数据目录升级为治理平台找到所需资产后用户可以进入实体页面执行各种使用、管理和治理操作。我们将实体页面上的内容按照数据类型或操作类别分组并组织成不同标签页。与使用和文档相关的标签页可以帮助用户快速了解如何使用某张表。“配置”标签页包含列和表的说明“联系点”标签页包含所有者和消费者信息“文档”标签页则提供关于如何使用这张表的更多细节。除此之外这些页面还允许用户执行管理操作。例如用户可以为包含个人数据的列添加标签。变更或删除这类标签时需要经过审核以确保数据仓库中的个人数据能够被正确识别。上面的例子只展示了我们如何将数据门户从一个可搜索的数据目录升级为一个集中管理和治理所有数据资产的平台。统一元数据服务Metis 的后端核心统一元数据服务简称 UMS是集中式数据管理平台的后端核心。它提供以下能力一个集中式 Schema并在其上构建 GraphQL API 层用于访问元数据一个集中式关系图用于连接原本分散孤立的元数据集中式元数据管理能力使系统能够在不重复造轮子的情况下满足合规和治理需求。将元数据集中到 UMS 中可以避免所有元数据提供方与使用方彼此单独集成。相反所有提供方和使用方只需与 UMS 集成即可。元数据集成模式UMS 在元数据集成和各种使用场景中扮演着不同角色。在去中心化的数据生态系统中我们对哪些元数据应该存储在 UMS、复制到 UMS或通过 UMS 提供服务有着非常明确的要求。统一表示层代理请求UMS 支持将读取请求代理到多个数据系统包括存储表结构和表属性的 Hive Metastore提供原始 Hive 表数据血缘关系的血缘服务用于评估数据集治理状态的数据治理服务。元数据管理服务UMS 会集中管理一些关键业务元数据并将其存储在自己的元数据数据库中同时提供管理能力包括更新校验和授权审计历史记录针对关键元数据敏感操作的审批工作流。支持离线生成元数据的在线使用场景作为公司数据质量计划的一部分我们为数据仓库中的每个数据资产生成了直接关联的数据质量评分。数据集的数据质量评分以离线方式生成并导入 UMS 元数据数据库用于在线场景。集中管理的搜索索引支持数据发现与传统数据目录类似UMS 会在 Elasticsearch 集群中集中管理不同实体的索引从而支持数据发现。元数据摄取连接数据源与管理平台在某些情况下元数据需要被存储或复制到 Metis 的存储层。UMS 通过多种预置机制与元数据提供方集成并结合公司的技术栈摄取元数据。这些机制包括使用流处理作业摄取元数据变更事件每天运行 ETL 作业从元数据提供方拉取数据并推送到 UMS直接调用 UMS API。当我们引入新的元数据提供方时关键工作是明确产品需求与相关方就元数据集成范围达成一致并最终确定实际采用的集成机制。数据血缘服务理解数据资产与数据管道关系Metis 的最后一个主要组成部分是数据血缘服务。早在 2020 年我们就采用某开源血缘分析项目作为公司数据仓库的数据血缘解决方案。在公司内部这套血缘系统维护着一个庞大的血缘图其中包含超过 1 亿个节点和 3 亿条边。血缘数据的主要来源是生产环境中的 Hive 表以及数据仓库中的大量中间 Hive 表。为了处理数据仓库中的大规模血缘事件我们对这套开源血缘系统进行了大量定制和调优对血缘事件应用分片策略提高并行处理能力基于图数据库优化服务器代码效率微调支撑图数据库的底层存储系统提高可扩展性并降低延迟支持读取路径优化和过滤更高效地访问血缘数据。这套血缘系统的相关组件包括图引擎、类型系统、数据摄取机制和血缘 API使我们能够高效收集并提供血缘数据从而深入理解各种数据资产和数据管道之间的关系。它也为许多关键的数据合规、数据可靠性和数据质量产品提供了支持。结语数据管理平台是数据治理的基础设施如上所述过去六年间公司数据管理方法发生了显著变化。我们最初构建数据门户是为了在公司内部实现数据民主化而现在我们推出了 Metis一个让公司员工能够搜索、发现、使用和管理离线数据仓库中所有数据与元数据的平台。Metis 在数据合规、数据可靠性和数据质量等方面发挥着关键作用每周为超过 1,000 位数据用户提供服务。未来我们的工作将围绕两个重点展开。第一我们将继续改进系统架构和底层技术以适应数据生态系统的快速发展。第二我们计划将覆盖范围扩展到更多系统并实现更高级的数据管理能力。这也体现了公司对数据领域长期投入的承诺。如果没有数据管理团队成员以及跨职能、跨团队合作伙伴的共同努力Metis 项目不可能实现。在此我们向所有参与和支持这一项目的人表示感谢。说明文中出现的技术项目、产品名称和品牌均归其各自所有者所有。本文中使用这些名称仅用于识别和说明目的并不代表任何认可或背书。