美团点评运营数据产品化应用与实践

背景

美团点评作为全球最大的生活服务平台,承接超过千万的POI,服务于数量庞大的活跃用户。在海量数据的前提下,定位运营业务、准确找到需要数据的位置,并快速提供正确、一致、易读的数据就变得异常困难,这些困难主要体现在以下方面:

  • 取数门槛高,找不到切合的数据,口径复杂不易计算,对运营人员有一定的技能要求,人力成本增大;
  • 数据处理非常耗时,缺少底层离线数仓模型建设和预计算支撑,Ad-hoc平台查询缓慢;
  • 数据不一致,不同渠道口径不一致,缺少对杂乱指标的统一管理;
  • 数据反馈形式不友好,缺少数据可视化的形式,无法呈现趋势,继而影响业务人员对多维、降维、对比等情况的进一步分析操作。

因此团队提出将运营专题数据产品化,首先分析面临的一些问题和挑战。

挑战

① 服务业务能力

数据模式是需求驱动导向,这就导致数据最初只支持了少数团队,而更多有个性化需求的业务团队就无法被支持。

② 存储、计算、研发成本

没有统一的规范标准管理,造成了重复计算的资源浪费;数据的层次和粒度不清晰,使得重复存储严重;同时,工程师需要了解研发流程的整个细节,对研发的时间和精力成本造成浪费。

③ 数据标准不统一

业务指标繁杂,即使同样的命名,但定义口径也会不一致。例如,支付用户数就有多种定义,由此带来的问题是,都是支付用户数,应该用哪个?为什么数据都不一样?

④ 业务分析响应能力

即使拥有健壮的数仓模型支撑,但最终能否快速响应多维计算,进行对比分析,同时做到数据可读,都是对产品交互和服务能力的一种挑战。

针对以上的问题和挑战,开始制定建设方案。

方案

首先,构建了一个针对境内旅游运营侧全域的公共底层数据,将不同平台促销系统的数据按业务整合到一起,同时划分不同活动主题,按事件再向上聚合,做专题的数据支撑,统一数据出口。然后通过多维预计算引擎对事实数据进行预计算,构建数仓与应用的管道,从而节省计算成本,并且提升了数据互通和消费的效率,最后建设统一的数据服务中台,搭配不同端的Web应用。通过丰富的可视化效果,及多样的分析对比操作,快速、全面地支撑运营业务。

以下为整个产品的功能模块图:

图1  运营专题整体功能模块图

如图所示,运营专题数据的产品化,根据需要解决的问题划分了多个不同的层次,每一层除其需要面对的核心问题外,还有其领域内其它功能模块的抽象和扩展,下面将会按照层次划分逐一介绍各个模块。

数据仓库层

数据生产和消费的基础平台,是整个数据产品化过程中最核心的角色。数据仓库的模型建设,不但影响产品化的难易程度及可行性,更是数据一致性等关键问题的直接因素,所以为降低使用门槛、统一数据标准、支撑上层更合理的架构,模型的选取就变得尤为重要。

领域内常见的建模方法

① 3NF模型

3NF模型(又叫“范式模型”)是数据仓库之父Inmon提出的,它用实体加关系的数据模型描述业务架构,在范式理论上符合3NF,是站在全局角度面向主题的抽象。它更多的是面向数据的一致性治理。

3NF模型最基本的要素是实体、属性和关系:

  • 实体:相同特征和性质的属性抽象,用抽象的实体名和属性名集合共同刻画的逻辑实体;
  • 关系:实体之间的关系;
  • 属性:实体的某种特性,一般实体具有多个属性。

② 维度模型

维度模型是Kimball提出的。维度模型多为分析和决策提供服务,因此它重点解决快速完成分析,同时提供大规模复杂查询的响应性能(预聚合),更直接地面向业务。例如熟知的星形模型,以及特殊场景的雪花模型。

维度建模最基本的要素是事实和维度:

  • 事实表:一般由两部分组成,纬度和指标,通常理解为“某人在某时间某地点通过某手段做了什么事情”的事实记录,它体现了业务流程的核心内容;
  • 维度表:看待事实的角度,用以描述和还原事实发生的场景,比如通过地址、时间等维度还原业务场景。

③ DV模型(DataVault)

DataVault是Dan Linstedt发起的,是一种介于3NF和维度建模之间的建模方法。它的设计主要是满足灵活性、可扩展性、一致性和对需求的适应性。它强调建立一个可审计的基础数据层,主要包括Hub(核心实体)、Link(关系)、Satellite(实体属性)三个要素。

④ Anchor模型

Anchor模型由Lars. Rönnbäck提出,是DataVault模型的进一步范式化处理,核心思想是只添加、不修改的可扩展模型,Anchor模型构建的表极窄,类似于K-V结构化模型。它主要包括Anchors(实体且只有主键),Atributes(属性),Ties(关系),Knots(公用枚举属性))。Anchor是应用中比较少的建模方法,只有传统企业和少数几家互联网公司有应用,例如:蚂蜂窝等。

运营专题数据如何构建

随着促销系统不断发展,平台趋于稳定,再结合各活动类型,及对需求的整理和进一步产品化,选择了3NF+维度建模为基础的模型方法论,对数据进行合理划分和整合,构建了运营专题数据体系。

① 数据规范制定

数据规范的制定也是指标字典和服务层规则引擎抽象的基础。首先同业务达成共识,制定数据一致性标准,统一口径。同时将核心指标和个性化指标进行抽象,抽取统一规范定义,例如:月初到月末的整体交易类GMV和补贴类GMV,其原子指标是GMV,其它要素都属于指标的修饰。

图2 数据规范抽象示意图

② 数仓模型架构

将数据分为ODS层、BAS层、FACT层、TOPIC层。

ODS层主要功能

从分布式消息队列中消费Binlog和Click-log,并对埋点数据进行清洗和业务库数据还原,并根据需要增量或全量同步到Hive,同时积累历史数据并保存。

BAS层主要功能

采用3NF建模方法,对整体业务进行概念抽象及适当冗余,在保证数据一致的同时将同属性实体归纳整合到同一逻辑域。BAS层主要是为了减少数据的不一致,减少存储空间,响应业务系统的变化,避免更新异常。

FACT层主要功能

采用维度建模方法,根据活动特点及事实场景,对代金券、现金券、促销等的事件进一步整合。经过对维度的预处理,在使用信息的时候,不但减少时间成本、提高数据的提取效率,又为用户在Ad-Hoc平台查询提供很好的支撑,同时它成为了上层数据应用的关键出口。

TOPIC层主要功能

该层建设不是必须的,是针对业务中个性化诉求,根据需要建设专题数据。服务小范围业务群体和用户,用来支撑核心业务指标外的某一块个性化指标和应用。

图3 数据仓库模型图

如图所示,数仓模型整体架构图。通过构建运营专题的底层数据,针对数据一致性等问题,在数仓层面上得到了很好的解决,同时在数据提取效率上有很大的提升。数仓建设为接下来的业务支撑打好了充分的基础。

多维预计算层

预计算层是连接数据和应用之间的管道,是应用层垂直模块的专项支持。它是在Fact层数据之上的预聚合,强依赖于数仓模型中事实和维度的构建以及预关联。预计算采用Kylin引擎构建Cube聚合组,来解决取数门槛和数据处理耗时等问题,同是提供多维分析的能力,不但提供了新的Ad-Hoc(Query Engine)平台,在提高查询响应的同时,又能为产品带来更流畅的交互,增强用户体验。例如:创建一个交易数据cube,它包含日期(datakey)、用户(userid)、付款方式(paytype)、购买城市(city)。为满足不同消费方式在不同城市的应用情况和查看用户在不同城市的消费行为,建立以下两个聚合组,包含的维度和方式如图所示:

图4 构建cube示例图

中台服务层

数据预计算之后,需要分别对PC和移动端提供计算和装载,并且要针对不同端的特定模块做特定的开发,为了应对多变的业务逻辑,以及未来的可扩展能力,需要提供可插拔的、统一的服务层,该层主要可以解决如下问题:

  • 服务与预计算数据同步,数据模型的修改只影响到预计算层,同时服务层还可以完全感知预计算数据的变化,不需要对服务做开发调整,实现数据变更的同步响应;
  • 服务与端解耦,针对不同端产品提供统一数据服务,避免重复开发,同时产品的迭代升级与服务层隔离,应对多变的业务发展和增长;
  • 服务扩展能力增强,支持服务的横向扩展,不影响正常业务的同时提高服务能力,同时在该层实现可抽象通用操作以及规范管理。

总体架构

图5 运营专题产品架构图

整个服务由独立的Web应用端发起请求,通过权限验证后对中台发起调用,然后读取配置中心的配置,由计算引擎对数据进行并行计算,同时规则引擎按业务线和指标修饰词等生产衍生指标,然后将引擎完成的数据按周期进行快照,存入备忘录,同时关联指标字典将数据与文案返回前台,最后按功能再对数据做可视化处理。下面分别对服务中交互的几个模块做简单的介绍。

配置中心

把系统的各类资源(比如:数据库、服务地址、缓存等)以及多个环境和具体业务逻辑(比如:业务线、平台、指标类型),按功能特性抽取出公共的控制的线头,在需要调整的时候,人为的控制系统。

图6 配置中心示意图

如图所示,用户通过单独的配置入口,将系统配置、优化条件判断、业务线个性化指标配置等信息提交到Server,运行时Client会到Server拉取配置,放入缓存,并定时持久化到本地文件,方便异常中断或重启时手动或自动重新加载配置。

指标字典

公司中的很多运营部门指标定义不清晰或不尽相同,但叫法相同(文案),又或者叫法相同指标口径不同,出现一些对指标的理解不一致,含义不清等问题。基于指标字典,不但是指标命名的规范和明确,也是统一计算口径的落地,接入规则引擎后生成关联衍生指标,即可自助完成查询和分析。可见,指标字典的建立,是数据服务平台的基础。

图7 指标字典思维导图

如图所示,基于数仓中对数据规范的制定,将指标按业务线、类型、基础、衍生等划分为不同类别,并对指标名称、别名、口径等信息落地入库,进行持久化存储。

规则引擎

运营业务的特点是运营活动规则的多变,需要很多个性化配置。为解决复杂和复合的计算问题(维度和事实的交叉)并降低维护成本,将逻辑从“硬编码”中将规则抽离,然后根据不同业务线特点按修饰词进行隔离,提高应用灵活性,简化架构。

图8 规则引擎示意图

① 数据准备规则

在应用数据计算之前把外部数据引入作为规则匹配运算的算子或数据集,例如某活动针对全部用户做发红包活动,而在活动中针对新用户发x面额的红包,而针对老用户发y面值的红包。其规则条件为:红包金额大于小于等于,且使用地点为上海北京全部;

② 数据计算规则

实现对业务规则的变量和参数化,按指标字典中的指标定义,转化为计算表达式,使得规则执行的结果作为其他规则条件的计算因子,生成衍生指标。

计算引擎

计算引擎(core模块)在对数据进行处理时对数据进行了分片,分桶等优化操作,在面对多维度大范围数据查询时一定程度上提升了查询性能,计算模块的抽取实现了与业务逻辑的解耦,它只负责任务的处理和执行,可仅对性能进行维护和升级,甚至可以维护不同处理方式的多个计算引擎,无需关心业务逻辑。

图9 计算引擎示意图

如图所示,当引擎接收一个时间跨度较大,维度较多的数据时,会先按照时间进行横向切分,然后将切分的数据按维度组合进行纵向切割,每一组都交由一个线程进行处理,并对该结果数据进行tag标记,然后根据标记在前台进行整合。

备忘录

备忘录是按时间周期对数据计算完成装载后状态的快照历史,是对值和计算规则的持久化。通过备忘录可以为用户提供横向,纵向等对比分析功能,帮助用户分析趋势。简化示意图如下:

图10 备忘录示意图

数据可视化

面对冰冷的数字,如何将数据组织起来,使其既有吸引力又易于理解? 可视化是解决问题的一种高效的手段,数据是强大的,如果能真正理解其中的内容。 运营专题产品采用了开源的Echarts,通过定制化开发的可视化数据,帮助用户将数据转化为可以付诸行动的见解,在提供可视化数据的同时,又为专题数据特定模块提供特定的降维,对比等线上分析操作。

趋势对比

通过维度的筛选切换,业务不同视角的核心指标趋势一目了然,不仅提供不同时间粒度同环比的纵向比对,还提供同级指标的横向比对,努力做到多角度、全方位的数据呈现。

图11 产品趋势对比图

降维操作

为更好的认识和理解数据,降低复杂度,缓解“信息丰富、知识贫乏”现状,提供了降维操作,让原本稀疏分布在各维度的特征聚敛,将某类特性更直接的表现出来。

图12 产品降维操作图

指标对比

将业务人员的线下热操作简移到线上,通过将维度压扁拉伸成纵向指标,进行多维指标的对比,并提供明细。

图13 产品指标对比图

多维查询

为支持更好的OLAP分析,发挥预计算层的作用,还提供了关键指标解析和多维查询的功能,是产品对常规性分析的功能补充。

图14 产品多维查询图

总结

在运营专题数据产品化的过程中,将技术转化为价值,提炼数据内容、为业务赋能是真正的发力点,为发挥数据的最大价值以及带给用户更好的体验,投入了大量的思考与实践,最终产品的生产投入为现阶段带来了以下收益:

  • 数据标准统一:数据指标口径一致,各种场景下看到的数据一致性得到保障,支撑多个团队;
  • 极大扩展性:服务了内部全运营业务团队,满足不同团队的个性化需求;
  • 统一服务:建立了统一的数据服务和中台服务,支持灵活配置;
  • 计算、存储、研发成本:增强了指标的复用、模型分层、粒度清晰,精简了数据表的落地量,通过数据分域、模型分层,节省了研发的时间和精力;
  • 业务支持:丰富的可视化数据,提供多维、降维、对比等多样的分析操作,多方位全角度支撑业务。

作者简介

  • 吉喆,美团点评系统开发工程师,曾就职于新浪,美团,阿里巴巴从事系统开发及数据开发工作,2017年加入美团点评,负责数据仓库建设和产品开发相关工作。

招聘信息

团队长期招聘数据仓库、数据开发工程师,欢迎对大数据领域感兴趣的同学投递简历到yangguang09#meituan.com,期待您的加入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478645.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NAACL’21 | 来看如何让模型学会因为所以但是如果

文 | Eleanor 编 | 戏有一些标准考试那是真的难,难到能分分钟教你做人。对于留学党来说,申请法学博士需要 LSAT 考试成绩、申请商学院需要 GMAT 考试成绩。这些标准考试到底有多难,大概考过的都懂8(嘤嘤嘤_(:з」∠)_)…

领域应用 | 知识计算,华为云赋能企业知识化转型

本文转载自公众号:华为云AI。从计算智能,到感知智能,再到认知智能,是业界普遍认同的人工智能技术发展路径。随着技术的演进,人工智能已经在"听、说、看"等感知智能领域达到或超越了人类水准,但是…

我在小程序工程化方面的一些实践

我在小程序工程化方面的一些实践 早期做小程序时,还是原始时代,项目结构混乱,各种冗余代码,每次迭代时由于高昂的维护成本,极为头疼。遂在一次次的更迭中完成了基础组件的初版,极为酸爽。从此之后在当时的…

LeetCode 430. 扁平化多级双向链表(DFS)

1. 题目 您将获得一个双向链表,除了下一个和前一个指针之外,它还有一个子指针,可能指向单独的双向链表。这些子列表可能有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。 扁平化列表…

详解:多模态知识图谱种类及其应用

详解:多模态知识图谱种类及其应用 本文系统的讲述了一些关于多模态知识图谱的相关知识,作者介绍了一些重要的开源多模态知识图谱,基于百科多模态知识图谱Richpedia以及相关使用网站和多模态知识图谱的应用。>>加入极市CV技术交流群&am…

Android Hook技术防范漫谈

背景 当下,数据就像水、电、空气一样无处不在,说它是“21世纪的生产资料”一点都不夸张,由此带来的是,各行业对于数据的争夺热火朝天。随着互联网和数据的思维深入人心,一些灰色产业悄然兴起,数据贩子、爬虫…

论文浅尝 - ICML2020 | 跨域对齐的图最优运输算法

陈卓,浙江大学在读博士,主要研究方向为图神经网络和知识图谱表示学习。论文链接:https://arxiv.org/pdf/2006.14744代码:https://github.com/LiqunChen0606/Graph-Optimal-Transport发表会议:ICML 2020动机该论文的出发…

张俊林:对比学习研究进展精要

文 | 张俊林知乎对比学习(Contrastive Learning)最近一年比较火,各路大神比如Hinton、Yann LeCun、Kaiming He及一流研究机构比如Facebook、Google、DeepMind,都投入其中并快速提出各种改进模型:Moco系列、SimCLR系列、BYOL、SwAV…..&#x…

前端开发者的福音!通过拖拽就可生成Vue代码的平台来了!

Vue组件代码生成平台 Vue组件代码生成平台是一款面向Vue开发者的拖拽式组件代码生成工具。通过它可以快速搭建Vue组件的代码骨架结构。开发者可在此基础上进行二次开发。 目前该平台非常适合快速搭建一个常见的数据查询组件,仅需要拖三个组件进来即可完成&#xf…

LeetCode 523. 连续的子数组和(求余 哈希)

1. 题目 给定一个包含非负数的数组和一个目标整数 k,编写一个函数来判断该数组是否含有连续的子数组,其大小至少为 2,总和为 k 的倍数,即总和为 n*k,其中 n 也是一个整数。 示例 1: 输入: [23,2,4,6,7], k 6 输出: …

知识图谱简介

01 什么是知识图谱 我们可以从不同的视角去审视知识图谱的概念。 在Web视角下,知识图谱如同简单文本之间的超链接一样,通过建立数据之间的语义链接,支持语义搜索。 在自然语言处理视角下,知识图谱就是从文本中抽取语义和结构化的…

流量运营数据产品最佳实践——美团旅行流量罗盘

背景 互联网进入“下半场”后,美团点评作为全球最大的生活服务平台,拥有海量的活跃用户,这对技术来说,是一个巨大的宝藏。此时,我们需要一个利器,来最大程度发挥这份流量巨矿的价值,为酒旅的业务…

开源开放 | OMAHA 联合 OpenKG 发布新冠诊疗图谱数据

本文转载在公众号:OMAHA联盟。今年新型冠状病毒肺炎爆发期间,大数据、云计算、人工智能等新一代信息技术支撑着我国建立和健全疫情防控机制。知识图谱作为机器认知智能实现的基础之一,是人工智能的重要组成部分,在“抗疫”行动中赋…

LeetCode 498. 对角线遍历

1. 题目 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。 输入: [[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ] ]输出: [1,2,4,7,5,3,6,8,9]2. 解题 横…

图灵奖得主Jeff Ullman:机器学习不是数据科学的全部!统计学也不是!

文 | Jeff Ullman源 | 智源社区3月31日,2020年图灵奖重磅出炉,颁给了哥伦比亚大学计算机科学名誉教授 Alfred Vaino Aho 和斯坦福大学计算机科学名誉教授 Jeffrey David Ullman。Jeff Ullman 是数据科学领域的巨擘,他的研究兴趣包括数据库理论…

深度学习及AR在移动端打车场景下的应用

本文内容根据作者在美团Hackathon 4.0中自研的项目实践总结而成。作为美团技术团队的传统节目,每年两次的Hackathon已经举办多年,产出很多富于创意的产品和专利,成为工程师文化的重要组成部分。本文就是2017年冬季Hackathon 4.0一个获奖项目的…

开源开放 | 熵简科技 AI Lab 开源金融领域中文预训练语言模型 FinBERT

1 背景及下载地址为了促进自然语言处理技术在金融科技领域的应用和发展,熵简科技 AI Lab 近期开源了基于 BERT 架构的金融领域预训练语言模型 FinBERT 1.0。相对于Google发布的原生中文BERT、哈工大讯飞实验室开源的BERT-wwm 以及 RoBERTa-wwm-ext 等模型&#xff0…

前端如何做极致的首屏渲染速度优化

这里说的极致是技术上可以达到最优的性能。 这里不讨论常见的优化手段,比如:Script标签放到底部、DNS预解析、HTTP2.0、CDN、资源压缩、懒加载等。 这里讨论的是如何使First Contentful Paint的时间降到最低,这个指标决定了白屏的时间有多长…

LeetCode 209. 长度最小的子数组(滑动窗口)

1. 题目 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。 如果不存在符合条件的连续子数组,返回 0。 示例: 输入: s 7, nums [2,3,1,2,4,3] 输出: 2 解释: 子数组 [4,3] 是该条件下的长度最小的连…