分享

快手智能元数据管理平台建设实践



问题导读:

1、如何解决烟囱式开发?
2、如何打造高质量元数据?
3、如何基于血缘做影响分析和故障溯源?




大数据中台领域中,元数据管理作为横向系统,贯穿了数据从生产到消费的全生命周期,包括大数据引擎、大数据系统等。元数据管理是数据中台重要组成部分,本次分享主要介绍快手建设元数据管理系统的挑战和解决方案,以及元数据如何提效数据应用和资源治理。(本文内容已经在2022 年 9 月 DataFunSummit2022 现代数据栈在线峰会进行过分享)

1 快手元数据管理建设背景
元数据是描述数据的数据,比如大数据表的Schema信息、BI 看板、数据集、指标模型等。元数据管理涉及数据中台多环节,包括数据同步、数据加工、数据服务等。快手元数据管理平台已经采集数据表、指标模型、AB任务、分析看板等几十种元数据类型。

640.png

元数据管理在快手的发展历史,可以分为三个阶段:

初创阶段。在2017年,快手数据平台处于建设早期,数仓以 Hive 为主,元数据管理平台也主要是接入了Hive ,元数据类型相对单一。

平台1.0阶段。在2019年,随着业务发展,数据系统和应用建设更为丰富,数据平台引入了 Kafka、Druid 等引擎用于数据开发。元数据管理平台扩充了多种存储引擎元数据,并且初步建设了平台化产品能力,如找数能力。

平台2.0阶段。在2020年,快手重点投入数据中台大基建,包括实时和离线数据开发、统一调度、数据服务、指标模型、BI分析等。基于此,元数据管理平台也采集了涵盖数据生产到消费环节的各类元数据,也提供了丰富产品化能力,如血缘分析、数据治理等。

640 (1).png

2 元数据管理2.0系统架构和关键技术

2.1 系统架构

快手从2020年开始建设元数据管理2.0平台,主要的建设思路是「统一化」和「主动化」:

  • 统一化:零散的烟囱式组件开发合并归一,提升效率


  • 主动化:以终为始,围绕业务价值建设元数据服务能力

我们在建设元数据管理2.0平台时,也面临诸多挑战:

  • 业务复杂:快手数据平台有多种内部系统,涉及几十种结构各异的实体,以及多类异构关系


  • 规模巨大:实体数据量级上亿,且增量巨大


  • 协作繁多:跨多部门沟通、协作等涉及组织协同


  • 应用多样:元数据应用场景多样化,且对于数据服务质量要求高

640 (2).png

鉴于上述挑战,元数据管理平台建设思路是 3+1 建设,即3个统一层+1个应用层:

  • 统一接入:构建一体化元数据接入流程(接入->解析->加工->产出),统一支持实体和血缘的增量上报和全量上报


  • 统一存储:基于JanusGraph+Atlas 作为主存,并基于此构建数据质量保障体系,做到元数据高一致性


  • 统一服务:按服务类型聚合,划分为统一接口服务、统一消息服务、统一数仓服务


  • 元数据应用:建设基于元数据的应用产品,包括找数、管数、治数等多场景

640 (3).png

2.2 关键技术

我们在系统实践过程中,涉及几个关键技术,下面分别介绍。

  • 统一接入
  • 统一存储
  • 质量保障
  • 血缘分析
  • 数据自动分析


统一接入:如何解决烟囱式开发

元数据管理平台,引入统一的接入规范和流程,避免了过多差异化建设,减少了烟囱式开发。元数据实体类型,会继承基础实体,从而拥有对应基础属性,并扩展出特有属性。实体和关系的ETL处理,也遵从一致的处理流程,在系统落地实现上精简化。统一接入的价值点在于系统架构的优雅和清晰。

640 (4).png

统一存储:如何存储异构实体

快手随着数据中台建设,所涉及重要的元数据实体类型达30+种,且结构差异性较大,如“Hive表”包括“列”,“列”又有“名称”、“描述”等属性,而“离线开发任务”的属性则大为不同。面对此情况,早期处理方式是为异构实体创建不同结构的表,以存储数据,然而该方式在面临多达30+种异构实体类型时扩展性较弱。除了异构性挑战外,元数据实体量级达亿级,且访问性能要求也很高。

面对以上问题,我们使用Atlas+JanusGraph方式存储数据。首先,该方案引入了类型系统,允许我们将元数据实体类型(Schema结构)作为数据直接存入系统,即完成动态录入元数据定义。第二,该图库底层存储是基于Hbase,可支撑亿级数据量,包括实体和关系都可以统一存储进来。第三,对于特定场景对元数据访问性能要求高,引入ES等组件来加速查询。

640 (5).png

质量保障:如何打造高质量元数据

快手内使用元数据的系统很多,也不乏P0业务场景,他们对数据质量要求非常高,一旦出现问题,则可能会对数据生产及时性或者数据决策正确性造成很大影响。但是元数据管理平台时常出现质量问题,如元数据实体不一致,或者实体血缘错误。

快手元数据管理平台从两个方面保障质量:

实体一致性:对于重要实体类型,引入全量修复机制,定期对比外部数据源,来修复平台内元数据;平台采取分级修复策略,越高优的实体会越频繁对比和修复。基于此,数据一致性有较大提升,并且可以较好支撑数据消费链路的P0业务场景。

血缘准确度:快手离线生产任务大部分是基于SQL构建,我们使用了 Antlr 解析任务 SQL 从而构建数据血缘(包括表血缘、字段血缘、埋点血缘等),并且对于重要血缘关系变更时,会对比前后版本,并且尝试自动归因(血缘变更原因),若归因失败会阻断异常血缘变更。

640 (6).png

血缘分析:如何基于血缘做影响分析和故障溯源

建设统一元数据层的一个重大应用场景是,我们有全局数据血缘视角,可以做全局血缘分析。当我们上游Hive表数据内容异常,可以及时推断影响下游哪些看板(影响分析);当数据指标出现异常,也可以快速定位上游环节异常(溯源)。

快手数据血缘涉及的数据量很大,单实体可有千级直接下游;此外数据血缘层级深,可达 50+;另外元数据图库性能较弱无法支撑大批量复杂查询。基于该现状,我们抽象了两类血缘分析场景:

  • 第一,简单同步查询,应对直接通过图库查询来预览实体临近的上下游血缘
  • 第二,多维异步分析,应对多条件且相对复杂的血缘分析场景

对于多维异步分析,相比于提交复杂图SQL查询,我们采取简单层级遍历方式,可控制查询并发量,而不对图库造成过大负载。此外它也引入BFS方式遍历图,这会有几个好处:

  • 遍历优化,及早剪枝


  • 解耦图引擎能力,为后续变更图库选型做准备


  • 高度扩展性,遍历逻辑和遍历过程自主控制,扩展性非常强

640 (7).png

元数据自动分级:如何做数据分级保障

分级的思路在工程上有非常多的应用场景,比如服务分级、任务分级等。分级通常用于资源有限的情况下,如何最大化资源使用价值,达到业务目标。对于元数据也是一样,实体分级后,能允许我们提供分级质量保障能力,如高优实体具有更好的一致性、及时性、可用性保障。

元数据分级的思路是:

  • 划定基准等级:选定一批基准元数据实体,他们已有权威分级(如业务指标等级),将他们映射至元数据等级
  • 自动向上推导:基于上一步骤的基准实体,自动向上传导等级,由此可推断出图中父节点实体的优先级
  • 事实上,经过分级后,我们发现P0实体占比很小,这意味着我们可使用有限资源优先保障P0实体的一致性、及时性、可用性。

640 (8).png

3 元数据驱动资产应用和数据治理

元数据可应用于多类场景,包括:

  • 数据生产链路:提高数据生产效率,如辅助用户配置加工任务
  • 数据消费链路:助力数据查询分析效率,如辅助优化查询SQL
  • 数据管理链路:找数、管数、数据治理等横向数据管理效率
  • 本文重点介绍元数据应用于找数、管数、数据治理。

3.1 数据地图

基于全量元数据,快手构建了数据地图,满足业务最迫切的找数需求。数据地图有三个关键能力:

  • 搜得到:通过搜索找到实体(表、任务等)。数据地图搜索将实体的多类属性建立索引,包括基础属性、实体画像、实体使用案例等,在搜索时使用多策略优化,包括按规则使用精准匹配模式、按类型分配搜索权重等,搜索命中率达90%。
  • 找得到:除搜索外,数据地图还提供业务目录,以树状结构的方式组织数据表,允许用户“按图索骥”找到表。业务目录由专业同学进行维护更新,此外他们还可以对数据表本身维护画像,如业务标签、认证标签等,以辅助用户找数。
  • 看得懂:搜到或者找到数后,用户还需要理解数,能看得懂。数据地图提供多类基础信息和增强上下文以帮助理解数。其中增强上下文包括衍生信息,如表生产链路、其他用户使用该表的案例、表的样例数据等等。

640 (9).png

3.2 资产管理

资产管理平台,提供了20+资产的管理能力,主要包括:

  • 能管数:资产基础管理能力,创建、管理、删除等能力。
  • 能分析:提供多种组织粒度下的资产分析能力,如资产总量盘点、资产成本分析、资产排行等,以便个人和组织对于名下资产情况了然于心。
  • 能挖掘:对于资产进行初步挖掘,如自动推断无主资产负责人,来治理资产。

640 (10).png

3.3 数据成本治理

数据治理一般包括多个维度,如数据成本、数据安全、数据质量、数据规范、数据模型、资产价值等。本文以成本为例介绍元数据如何驱动成本治理。快手大数据存储量达数EB级,成本很高。对于数据表而言,从其生命周期看,通常涉及几个环节:创建开发任务、使用资源运行任务、资源账单、资源治理等。元数据则是驱动整个流程闭环运转,主要是通过资源账单为抓手来牵引资源治理。

治理策略包括两类:

  • 人工治理:驱动研发人员治理低热度、无效、高消耗等资产,并且在数据开发和资源使用节点,和治理打通,通过管控任务创建和资源申请来强化治理效果。
  • 自动治理:在无需人工参与的情况下,直接基于元数据来自动化治理,如按数据生命周期自动清理老数据、基于元数据推荐合适生命周期、冷热分级存储等。

640 (11).png

4 元数据管理平台 3.0 展望

快手元数据管理1.0,主要特征是手工化;而2.0则引入了统一平台化建设思路;未来 3.0 则主要是围绕着「低代码」、「自动化」、「智能化」等建设出主动元数据平台,并且开启智能数据管理时代:

  • 低代码和自动化:元数据系统将自动化的主动采集各类元数据,包括数据湖、指标模型信息、安全信息等一切和数据有关的元数据信息,无需各类系统参与。
  • 智能化:元数据采集到元数据系统后,数据犹如云一般,互相联通,可以被随时随地访问,从而能支撑各类元数据应用高效低成本使用元数据。元数据云,可支持多类智能数据管理应用,如智能数据调度优化,通过元数据分析找出关键链路增加资源从而在全局意义上提升数据及时性。

640 (12).png
最新经典文章,欢迎关注公众号



---------------------

作者:hadoop123
来源:weixin
原文:快手智能元数据管理平台建设实践



已有(1)人评论

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条