本文主要介绍美团酒旅数据治理的历程和实践经验,以及业务发展各个阶段中数据体系遇到的问题和解决方案。最后,将探讨数据治理在现阶段的建设思路和发展方向。
数据治理这个话题这两年非常火热,很多公司尤其大型互联网公司都在做一些数据治理的规划和动作。为什么大家都要做数据治理?我个人的理解是,从数据产生、采集、生产、存储、应用到销毁的全过程中,可能在各环节中引入各种问题。初始发展阶段,这些数据问题对我们的影响不大,大家对问题的容忍度比较高。但是,随着业务发展数据质量和稳定性要求提升,并且数据积累得越来越多,我们对一些数据的精细化要求也越来越高,就会逐渐发现有很多问题需要治理。数据开发过程中会不断引入一些问题,而数据治理就是要不断消除引入的问题,以高质量、高可用、高安全的方式为业务提供数据。
数据治理过程中哪些问题需要治理?总结了有五大类问题。
美团酒旅业务从 2014 年成立为独立业务部门,到 2018 年成为国内酒旅业务重要的在线预订平台,业务发展速度比较快,数据增长速度也非常快。2017 到 2018 两年里,生产任务数以每年超过一倍的速度增长,数据量的增长速度每年两倍多。如果不做治理,按指数级增长趋势,未来数据生产任务的复杂性还是成本负担都非常大。
针对我们当时面临的情况,总结了五大类问题:
2018 年以前酒旅数据组也做过数据治理,从数仓建模、指标管理和应用上做优化和流程规范,当时没有做体系化的数据治理规划。从 2018 年以后我们基于上面提到的五个问题,我们做了一个整体的数据治理策略。
我们把数据治理的内容划分为几大部分:组织、标准规范、技术、衡量指标。整体数据治理的实现路径是以标准化的规范和组织保障为前提,通过做技术体系整体保证数据治理策略的实现。同时会做数据治理的衡量体系,随时观测和监控数据治理的效果,保障数据治理长期向好发展。
每个公司在做数据治理时都会提到标准化,我们总体思路也没有太大区别。数据标准化包括三个方面:第一是标准制定,第二是标准执行,第三是在标准制定和执行过程中的组织保障,比如怎么让标准能在数据技术部门、业务部门和相关商业分析部门统一。
从标准制定上,我们制定了一个全链路的数据标准方法,从数据采集、数仓开发、指标管理到数据生命周期管理建立了很多标准,在标准化建立过程中联合组建了一个业务部门的数据管理委员会。管理委员会是一个虚拟的组织,主要组成是技术部门和业务部门,技术部门是业务数据的开发团队,业务部门是业务数据的产品团队,这两个团队作为实现的负责人,各自对接技术团队和业务团队,比如技术团队负责协调后台开发团队、大数据平台团队、数据分析系统团队等。业务则会协调商业分析、产品运营和一些业务部门。业务各个部门分别出人把数据管理委员会运行起来,为标准制定、执行提供组织保障。让大家对标准化制定能有更加统一的认知,执行过程阻力也更小,还能定期在组织内同步信息。
在执行过程中也不希望完全通过人力和组织来推动达成,总体希望以一些自动化的方式进行。下面介绍一下我们的技术体系。
① 数据质量,数据质量是数据质量中最重要的一个问题,现在数据治理的大部分问题都属于数据质量。这里有四大问题:
我们的技术实现方式是为了解决上面这四大类质量问题,首先在数据仓库规范性上进行统一,然后统一指标逻辑,在此之上统一数据服务接口,最后在产品上统一用户产品入口。从这四大方向将常见的数据质量问题管控起来,具体技术实现方式如下。
数仓建模规范
统一数仓建模规范分三大部分实现,以前我们只有事前的一些标准化规范,大家按自己的理解去建模实现。在这个基础上增加了事中和事后两个部分,针对事中开发了系统化工具,做数仓配置化开发。事后做规则化验证。事前会有标准化文档给大家提前理解、宣贯,事中很多标准化的事项会通过配置化自动约束规范,事后会有上线时的检验和上线后每周定期检验,检验数据仓库的建模规范是否符合标准,把不符合标准的及时提示出来、及时改进。
事前的标准化规范几个方向,第一是数据仓库的设计规范,在做一个新业务或模块之前,以文档形式做一些设计规范。第二是开发规范,包括一些开发流程、代码编写规范和注释信息。
这些形成之后还想在事中以系统化的方式进行控制,保证不会因为每个人的不同理解而对数仓的规范化构成影响。这里主要包含三部分工具:
事后会定期监控,生成报告来看每个业务线、每个组、具体每个人的数仓规范性情况。
对于具体的实现方案,我举一个简单的例子,一个数仓开发配置化的命名规范工具。我们工具的实质还是从规范化、标准化再到工具化,所以在前期做了一些规范化、标准化,在通过工具化把标准化和规范化通过系统实现,有了工具之后,比如人在数仓时,都会统一按相同的方式来命名,即便在几千个 ETL 里都有这个字段也能非常快地进行定位。命名工具和数仓建模 ETL 工具也进行了打通,命名审核通过后,直接点击就能在 ETL 工具的平台中生成一段代码,只需要将查询逻辑补充进去就可以了。这样就达到了控制数仓命名规范的目的。
统一指标管理系统
指标在数仓中非常重要,所有数据应用都是以指标方式使用的。指标管理系统化主要做了流程管理标准化、指标定义标准化和指标使用标准化。系统化分三层,第一层是物理表管理,第二层是模型管理,第三层是指标管理,这些信息在元数据管理中统一进行。
统一规范只是指标管理的第一步,除了指标管理外,所有数据应用还能通过这个工具查询数据。具体做法,一个应用无非要查询两种数据,一是维度,二是指标。在查询指标时,可能会有一些维度限制条件。在指标管理模块中通过指定指标定位到数仓模型,了解指标的获取方式(是 sum 还是 count 等)。相应的数仓模型可是能是星型模型、宽表、循环模型,从模型中解析出对应的底层物理表。解析后,结合指标、维度和筛选条件,经过不同的存储引擎,解析成不同的查询语句。这样控制好数据指标管理之后,数据应用可以通过指标管理模块获得一致性的解析。
统一数据服务
我们的数据被很多下游系统使用,比如数据产品、业务系统、运营系统、管理系统等。有些下游既需要我们提供数据表,还要提供接口,但数据组开发和维护后台接口难度较大,而且接口提供后很难把控数据的用途。所以我们做了一个统一的数据服务平台。平台目标是提高效率、提高数据准确性、提供数据监控、将整个数据仓库和数据应用链路打通。提供的方式有两种,一种是对于 B 端应用,提供按需使用,每天提供几万次的调用额度;一种是对于 C 端,通过推送的方式,比如每天推送一次最新数据。以推和拉两种方式保证服务功能的全面性,具体实现,大家可以参考下图:
分为几大层次:
统一用户产品入口
因为数据入口非常多,我们又做了一个数据入口的统一,分成三大类:
通过这种方式,某一类用户只需要在一类入口里访问一类产品,不会出现同一类产品中的数据不一致。我们又通过数据仓库的统一建模、数据指标管理保证了三大类底层数据集市的一致,从而保证了所有数据的一致性。
整体系统架构
整体的技术架构分为三层,从统一数据建模到统一指标逻辑、统一数据服务和统一产品入口,整体保障了数据的质量,同时配合数据管理的组织保障体系和流程规范,将整体数据质量相关的架构搭建起来。
② 数据运营效率
作为数据提供方,我们有很多数据资产,但数据使用方能不能快速找到、找到怎么用、有哪些数据,有三大类问题:
基于此有三大目标:找得到、看得懂、用得对。为了提效,我们选用一些智能化系统代替人工。对于运营相关的数据问题,先提供系统化的数据指南。该指南包含三大类信息:指标类、数仓模型、推荐使用方式。这个方式能解决可能 60%的问题,剩下的 40%再通过答疑机器人,用一些机器的方式替人回答问题,这又能解决其中 60%的问题。最后还有一些还是没找到的,落到人工答疑环节就非常少了,通过自动化把需要人工做的事情降到原来的 20%以下。
具体的实现方式,针对数据使用指南做了一个系统,把指标元数据、维度元数据、数据表和各种产品元数据等管理起来。用户从入口查询能够快速定位,支持分类检索和重点词检索,还会提供排序进行重点推荐,对每一个主题数据分类描述。通过数据指南能解决很多问题,不能解决的就进入答疑机器人系统,这里主要解决一些元数据里没有的问题。我们日常通讯工具上会有问答,把这些问题和答案总结成一个知识库,进行清洗和规则匹配。对这类问答的解析成一个问题对应一个答案,通过一些规则和关键字匹配后存起来。之后再查的时候只输入一个问题时,根据这个解析出来他想问的可能有几个问题,将这几个答案抛给他。
③ 数据成本
美团业务的数据成本也很大,每一年的数据存储、计算相关的成本增长非常快。美团目前大概的比例是 70%的计算成本、20%是存储成本、10%为采集日志。针对这三大类,我们也分别做了一些数据成本治理的方案。
针对计算类,主要做了如下事情:
针对存储类:
日志采集类:
整体的方案策略方面做了精细化拆分,比如按租户(每个业务线的用户)来看,租户下有队列,队列有离线、有实时。队列下面有计算、存储、采集,计算之中又分离线、实时,有些配置量、使用量。这样可以非常容易地定位到哪些租户、哪些数仓是有问题的,对应快速治理。
这方面也做了很多系统化的事情,比如有一个数据冗余判断的逻辑,每次做完数仓建模之后,会做冗余判断。元数据生成之后进行预处理,根据现有的数据做预判,看是否已存在。通过配置的对比逻辑,如果认为数据重复,会做标记并每周推送到数据治理的看板上,及时将冗余数据治理掉。
④ 数据安全
数据安全我们是以事前预防、事中监控、事后追踪三个方式来进行的。实践经验上,通过三层系统控制加五个使用原则实现。从数据产生的源头业务系统里就会将一些非常敏感的用户数据加密,数据仓库层会对各分层的数据进行脱敏和二次加密,第三层专门做一些数据审计,在数据使用全流程中提供信息提示和审计报告。
数据使用过程中应当遵循的五个原则:
未来能够全面的衡量数仓治理的效果,我们新建了数据衡量指标体系,总体分为五大类:质量类、成本类、安全、易用性和价值。在监控方式上分为日常监控和定期监控(周、月、季度监控),让我们知道整体数据治理是整体向好、平稳还是向坏的。
根据 PDCA 原则,将数据治理作为日常运营项目做起来,底层依赖数据指标体系进行监控,之上从发现问题到提出优化方案,然后跟进处理,再到日常监控构成一个循环。
总体来说,数据治理分为三个大阶段:被动治理、主动治理、自动治理。
第一阶段我们做的是被动治理,也就是阶段性治理,没有统筹考虑,主要是基于单个问题的治理,而且治理之后过一段时间可能要做重复治理。这个阶段更多是人治,一个项目成立,协调几个人按照项目制完成,没有体系规划也没有组织保障。
第二阶段是主动治理,有长期的统筹规划,能覆盖到数据生命周期的各个链路,在治理过程中把一些手段和经验流程化、标准化、系统化,长期解决一些数据问题,让数据治理长期可控。
第三阶段是自动治理,也是智能治理,希望长期规划和数据生命周期个环节链路确定好之后,把已经有的经验、流程和标准做成策略。一旦出现问题,自动监控,通过一些系统化的方式解决。自动治理的第一步还是治理方案的落地和策略化,这就非常依赖于元数据,把数据治理各个过程中的一些经验技术都沉淀起来。做完策略沉淀之后做自动化,把策略用工具的方式实现,当系统发现数据有问题时,自动去处理。
现在酒旅的数据治理还在第二阶段和第三阶段之间,虽然有整体治理计划、技术架构和组织保障,但还需要投入很多人力去做。之后,酒旅数据也会继续朝着智能化的方向做,把自动化治理做好。
今天的分享就到这里,谢谢大家。
嘉宾介绍:
李建舒,美团技术专家,美团大数据部住宿业务数据团队负责人,超过 10 年的数据领域相关经验,2015 年加入美团后负责酒旅相关业务的数据研发和数据治理工作。
本文转载自:DataFunTalk(ID:dataFunTalk)
原文链接:美团酒旅数据治理实践
领取专属 10元无门槛券
私享最新 技术干货