货拉拉数据治理平台建设实践

Posted 学而知之@

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了货拉拉数据治理平台建设实践相关的知识,希望对你有一定的参考价值。

导读:在数据开发和数仓建设过程中,数据治理落地和提升数据质量的重要性逐渐凸显,本文将从货拉拉的数据治理实践出发,分享货拉拉在数据治理体系构建、数据质量平台建设、元数据平台建设方面的实践。

今天的分享会围绕以下三个话题展开:

  • 货拉拉数据治理体系

  • 数据质量平台建设实践

  • 元数据平台建设实践


01

货拉拉数据治理体系

首先和大家分享下数据治理的背景和现状。

1. 背景与现状

我们在做数据开发或数仓建设过程中,会遇到大量问题,有些会导致成本和数据质量问题,有些会影响数据链路稳定性。比如数据表没有生命周期或无效的任务空跑,会造成成本浪费;又比如数据字典不规范、缺乏监控规范,以及数据问题不能及时发现,会造成数据质量问题,甚至导致链路稳定性。

2. 数据治理关键环节

基于以上背景,我们在以下四个环节做了相应工作:

  • 组织保障:明确成员角色,明确职责分工;我们成立了存储治理小组、计算治理小组,以及稳定性保障小组。

  • 制度建设:制定标准流程,保证落实执行;如我们制定了大数据接入规范、数据开发规范、数据模型规范,这些都是需要长期推广和落地的过程。

  • 项目落地:开展专项治理动作,比如存储治理、计算治理等;实践证明专项治理的效果比较明显,但问题是比较耗时耗力;不是长效机制,是一种运动式的治理,需要把能力产品化,让数据责任方自助式治理,驱动自主治理。

  • 平台支撑:研发支撑系统,提质增效。

今天我的分享主要是围绕平台支撑这个环节开展,其他三个环节,是接下来由其他老师带来。

3. 货拉拉数据治理产品体系

货拉拉数据治理产品体系,由数据质量管理平台、元数据管理平台以及数据安全管理平台这三个平台支撑。

元数据管理平台包含数据地图、数据血缘分析、数据模型管理、成本管控、数据资产管理。

  • 数据地图主要提供找数据和帮助用户理解数据的能力。

  • 数据血缘分析主要是在数据链路出现问题的时候,帮助排查定位问题。

  • 数据模型管理,提供规范落地能力:把所有正式表的建表收归到数据模型管理平台。这样的好处是,如数据安全等级、数据生命周期都会有设置,防止数据出现无序增长的趋势。

  • 成本管控平台,它的作用是度量当前数据资源有哪些,资源消耗是怎样的,每天花了多少钱。

  • 辅助治理措施:冷数据归档、数据生命周期管理能力。

  • 成本运营机制:可以让用户自驱地做成本运营,不用做保姆式的人治。

  • 数据资产管理:主要提供数据目录管理、数据标准管理,供评估数据资产;

  • 数据质量管理:提供全链路的数据质量监控,有问题可以及时发现和处理,防止问题进一步扩散,可以及时止损。

02

数据质量平台建设实践

1. 面临的数据质量问题有哪些

数据开发过程中会遇到很多问题,如:

  • 表未按时产出

  • 上游数据错误,污染下游,导致链路异常

  • 埋点数据丢失,无监控造成数据丢失无法发现

  • 报表数据异常,造成决策错误

2. 产生数据质量问题的原因

产生数据质量问题的原因,归结为四个方面:

  • 业务端:业务源系统变更,或业务端数据输入不规范,会导致数据生产以及数据接入出现异常。

  • 技术端:数据开发过程中出现的 Bug,或任务参数配置错误,导致任务运行失败。

  • 基础设施:计算资源不足,或网络带宽不足,磁盘被打满,也会影响数据产出。

  • 管理端:缺乏质量意思,缺乏有效质量问题处理机制,质量问题会越来越严重。

3. 数据质量保障思路

分为事前、事中、事后三个部分:

  • 事前:制定机制、标准流程和质量检查规则,预防质量问题。

  • 事中:数据质量平台搭建,可以监控全链路数据质量。

  • 事后:发现质量问题要及时修复,并考核数据链路质量,驱动数据链路负责人做数据质量提升。

4. 货拉拉数据质量平台

货拉拉数据质量平台是一站式数据质量管理平台,用户基本上不用编写代码,就可以完成质量规则配置,完成质量检测,支持自助生成质量报告。

(1)平台特点

  • 零代码一站式质量监测。

  • 支持表维度管理和主题维度管理:表维度是对单张表做质量规则配置,主题维度是对同一类别的表做相同类别的质量配置。

  • 借助了元数据平台中的数据血缘,完成整个数据链路的质量规则配置。

  • 当质量规则配置完成后,会生成一个质量检测任务,用户可以手动触发制定,也可以设置周期性调度执行,也可以去任务调度平台触发执行。因为一个任务对应一些输出表,当输出表落地后,会触发这个表关联的质检规则执行。如果关联的质检规则是强规则,且强规则检测未通过,会阻断下游任务执行,就能阻止数据质量问题进一步扩散。

  • 质检完成后,会生成质量报告;对于质量检测不通过的,会触发告警。严重的会触发熔断。

(2)数据质量平台架构设计

从图中看可以看出,后端的很多服务都是多实例部署的:比如 API 向前端提供接口服务;与数据库所有交互的请求都会走网关服务;还有负责任务调度的服务。API 和网关服务都是无状态的服务,用微服务架构部署的,是多实例部署,如果一个实例挂了,流量会打到另外一个实例上面去,保证稳定性、高可用。

但 Scheduler 是有状态的,因为它上面每时每刻都在运行一些任务,不能只是多实例部署就可以,而是需要主备架构。我们用了 Zookeeper 做 Leader 选举,当一个 Scheduler 挂掉之后,就会把另一个 Scheduler 拉起,把挂掉的 Scheduler 上的任务迁移到新起的 Scheduler 上。这样能保证任务不会挂掉,不会影响到数据质量检测。

最开始计算引擎只用了 Hive,后来用了我们公司自主研发的混合引擎服务,自动会把符合条件的 SQL 录用到 Presto 上去,Presto 是基于内存计算的分析引擎,速度比 Hive 快很多,下面会展示具体的提升效果。

图中展示的效果比较明显,图中绿色折线表示混合引擎的执行效果,黄色的是 Hive 的执行效果。基本混合引擎可以保证 85% 的质量检测任务都会在 20s 内完成。现在 80% 的质量检测任务都会在 5s 内完成,98% 的质量检测任务速度都会有 79% 的提升(之前 Hive 用 915s,现在混合引擎只需 192s),可以大大提升数据质量检测效率,不会影响数据链路的产出时间。

(3)数据质量平台规则体系

包含完整性、准确性、一致性、及时性。

在配置规则的时候,一张表可以应用多个模板,配相应规则。规则模板和规则的区别是,规则模板已经配了相应的阈值和调度时间,以及其他规则信息,只是还没有和表关联,为了提升规则配置效率。

这部分还和元数据平台做了联动:所有建表操作,都会统一在元数据平台完成,所以元数据平台会输入字段约束、值阈检查一些信息给规则模板,这时候规则模板只要和表实例关联,就可以完成规则配置,可以大大提升质量规则提升效率。之后有规划将数据标准管理平台的标准作为输入,如数据长度、码表、值阈等等信息,这样可以进一步节省规则配置的时间。

(4)数据质量平台熔断机制

下面再介绍一下数据质量平台熔断机制的运行流程:

首先任务开发平台里的任务对应多个输出表,当任务被调度执行的时候,会触发质量规则的校验。如果规则不通过,会触发熔断阻塞,下游任务不会执行,让质量问题不会进一步扩散。

(5)数据质量平台质量报告

上图是质量报告截图,支持多角度质量绩效分评分,并且支持用户自定义评分依据和权重。

(6)数据质量平台监控告警

监控告警是为了及时发现数据质量问题。

问题主要分为三类:

  • 一般问题:只需要邮件通知

  • 重要问题:邮件+飞书通知

  • 严重问题:邮件+飞书+电话通知

(6)数据质量平台运行现状

目前已经接入 1500 多张表,每个月都会发生 300 次以上数据质量问题数,今年以来熔断阻塞了 14 次,有效保障了数据质量和链路稳定性。

(7)数据质量平台未来规划

其实现在整体数据质量水平不能直接度量和观察,所以下一步我们要规划整体的质量治理体系,支持自驱的数据质量治理;支持 OLAP 场景的质量检测和实时场景的数据质量检测。

我的介绍就到这里,下面将由张放介绍元数据管理平台,欢迎。

03

元数据平台建设实践

线上的老师同学下午好,接下来将由我为大家介绍货拉拉的元数据管理平台。

大数据体系在发展到一定规模,就会面临:怎样找到需要的数据,如何梳理出上下游关系,数据治理靠什么来驱动,数据资产管理等问题;元数据管理平台就是为了解决以上这些问题。

今天从以下四方面展开元数据管理平台介绍:平台介绍、成本治理体系、数据血缘、未来规划。

1.  平台介绍

平台的建设思路是:定规范、做治理、建能力、做运营。

系统架构图左边展示了元数据管理平台的基础设施、平台/工具和业务系统;右边的应用层,提供数据地图、数据血缘、数据安全等能力,支撑上层的数据仓库、成本管理、数据分析、数据服务、数据模型等应用场景,在整个数据治理体系中扮演了非常重要的角色。

这里也对大厂的元数据平台进行了调研,列举了他们在元数据基建以及核心应用场景的建设情况。

总体来说,大厂元数据管理核心应用场景建设都比较完善。货拉拉元数据管理平台对标大厂,目前处于约 50% 的水平,还处在发展阶段。

2. 成本治理体系

介绍完平台总体框架,下面介绍本次分享的重要部分,成本治理体系。降本增效目前是行业趋势,而建设成本治理体系是数据治理中非常必要的一环。

下面将介绍基于元数据平台,货拉拉在这方面主要做了哪些工作。

(1)以存储治理为例,在没有治理的情况下,主要面临以下问题:

  • 表数量大

  • 增长快速

  • 冷数据占比多:约33%的数据90天内无访问,但是这些冷数据存储成本消耗和标准存储是一样的,造成很大的成本浪费

(2)围绕存储和计算成本高的问题,建设了成本治理体系。

图中是成本治理体系的框架

  • 首先建立资源预算机制,通过预算预警和限制,从部门层面控制整体成本使用。

  • 其次,落地数据资产度量体系。能够清晰掌握各项资源消耗,并核算成部门和个人级别的成本明细,转换成健康分,就能非常客观地度量成本使用情况。

  • 并且,配合有效的辅助治理措施,对离线存储和计算任务进行技术优化。

有了数据资产度量和辅助治理体系,再推广资产健康分红黑榜,对个人和部门实施奖惩措施,促使用户和业务部门主动参与到成本治理中,提升健康度,形成良性循环,最终达到成本目标。

(3)下面具体介绍成本度量和展示的实现思路:

从下至上:

  • 最下面是数据源层,成本消耗主要来自于计算任务产出的表、报表、标签等数据资产,它们分散在基础设施各处。

  • 要度量这些资产的成本数据,需要从各个平台或引擎采集消耗的明细数据,以个人或部门维度统计分析。

  • 经过平台数仓层,加工成可量化展示的成本数据,并根据这些明细数据分析转换成存储和任务的健康分。用户就可以非常直观地知道自己名下哪些任务资源消耗大,哪些表占用存储空间大;为推动任务优化和存储治理提供非常有利的数据支撑。相比以往需要人工核算成本账单,现在自动化统计运营的过程,更加精确高效,也节约了人工成本。

(4)下面再介绍辅助治理的具体方案:

  • 冷热分层和归档

上图左边的曲线,是通过综合分析归档,以及归档后数据取回的花费,得到归档最近 90 天数据被访问次数和收益占比的关系图;通过该关系图可给到分区的冷热分层(即热、温、冷、冰)定义。冰数据占比 50%,热数据仅 15%,分别采用不同的存储策略,分阶段地对冰、冷数据进行归档,降低存储成本。

以下是分层和归档的概要设计:

各平台系统提交的 SQL 经过引擎执行,解析为具体的分区访问记录,统计出分区级别的热度信息;采集文件系统的文件记录,得到文件的热度信息,join得到最终的分区热度信息表,根据该信息进行后续的归档工作。

在平台层支持分区温度展示,使用户主动进行分区归档工作。

  • 生命周期管理

数据生命周期,正式表和临时表采取不同的策略,将超过生命周期的分区滚动式地进行清理操作。

下图是生命周期和归档配合控制表数据的增长。比如,用户设置 180 天生命周期,和 90 天归档周期,生命周期之前的数据将被删除,生命周期内,90 天之前的数据将被归档。

运用这两种辅助治理手段,和数仓同学一起分阶段持续推进存量数据存储治理,初期就能有较可观的收益,同时推广运营产品化能力,全面覆盖增量表,能有效抑制存储增长趋势。

这是目前存储治理的收益情况,优化前存储呈线性快速增长,优化后存储8 个月零增长并持续下降,目前累计节省约 54% 的存储成本。

3. 数据血缘

数据血缘主要有四个方面的应用场景:

  • 数据资产:提供数据资产的热度统计,帮助理解数据上下文

  • 数据开发:支持影响分析和问题数据溯源

  • 数据治理:链路状态追踪,帮助数仓进行治理工作

  • 数据安全:安全合规检查以及字段安全级别传播

以下是数据血缘的架构图:

从引擎组件、大数据开发平台等,采集血缘信息和对应任务信息,经实时和离线解析,包括 SQL 解析和指标/报表血缘解析等,将解析出来的输入输出关系落到元数据系统中,供上层查询,并提供影像分析等能力。

4. 未来规划

元数据的未来规划,围绕以下四方面建设:

  • 更高效的找数服务

  • 更细粒度的血缘

  • 增强成本治理能力

  • 推广统一模型和数据标准

今天的分享就到这里,谢谢大家。关注公众号,获取技术文章。

🧐 分享、点赞、在看,给个3连击呗!👇

以上是关于货拉拉数据治理平台建设实践的主要内容,如果未能解决你的问题,请参考以下文章

货拉拉平台软件开发公司

货拉拉大数据对Bitmap的探索与实践(下)

货拉拉大数据对BitMap的探索与实践(上)

货拉拉分销软件定制

货拉拉 Android 动态资源管理系统原理与实践(上)

货拉拉 Android 动态资源管理系统原理与实践(上)