美团点评酒旅数据仓库建设实践

标签: 美团 数据仓库 建设 | 发表时间:2017-05-27 04:51 | 作者:美团点评技术团队
出处:http://tech.meituan.com/

在美团点评酒旅事业群内,业务由传统的团购形式转向预订、直连等更加丰富的产品形式,业务系统也在迅速的迭代变化,这些都对数据仓库的扩展性、稳定性、易用性提出了更高要求。对此,我们采取了分层次、分主题的方式,本文将分享这一过程中的一些经验。

技术架构

随着美团点评整体的系统架构调整,我们在分层次建设数据仓库的过程中,不断优化并调整我们的层次结构,下图展示了技术架构的变迁。

Hotel dw layer

我们把它们简称为三代数仓模型层次。在第一代数仓模型层次中,由于当时美团整体的业务系统所支持的产品形式比较单一(团购),业务系统中包含了所有业务品类的数据,所以由平台的角色来加工数据仓库基础层是非常合适的,平台统一建设,支持各个业务线使用,所以在本阶段中我们酒旅只是建立了一个相对比较简单的数据集市。

但随着美团原本集中的业务系统不能快速响应各个业务线迅速的发展与业务变化时,酒旅中的酒店业务线开始有了自己的业务系统来支持预订、房惠、团购、直连等产品形式,境内度假业务线也开始有了自己的业务系统来支持门票预订、门票直连、跟团游等复杂业务。我们开始了第二代数仓模型层次的建设,由建设数据集市的形式转变成了直接建设酒旅数据仓库,成为了酒旅自身业务系统数据的唯一加工者。由于系统调整初期给我们带来的重构、修改以及新增等数据处理工作非常大,我们采用了比较短平快的Kimball所提的维度建模的方式建设了酒旅数据仓库。

在第二代数仓模型层次运转一段时间后,我们的业务又迎来了一个巨大的变化,上海团队和我们融合了,同时我们酒旅自身的业务系统重构的频率相对较高,对我们的数仓模型稳定性造成了非常大的影响,原本的维度模型非常难适配这么迅速的变化。下图就是我们数仓模型当时所面临的挑战:

Hotel dw baslayer background

于是我们在ODS与多维明细层中间加入了数据整合层,参照Bill Inmon所提出的企业信息工厂建设的模式,基本按照三范式的原则来进行数据整合,由业务驱动调整成了由技术驱动的方式来建设数据仓库基础层。下图是该层次的一些描述:

baslayer adventage
使用本基础层的最根本出发点还是在于我们的供应链、业务、数据它们本身的多样性,如果业务、数据相对比较单一、简单,本层次的架构方案很可能将不再适用。

业务架构

下面介绍我们的主题建设,实际上在传统的一些如银行、制造业、电信、零售等行业里,都有一些比较成熟的模型,如耳熟能详的BDWM、FS-LDM、MLDM等等模型,它们都是经过一些具有相类似行业的企业在二三十年数据仓库建设中所积累的行业经验,不断的优化并通用化。但我们所处的O2O行业本身就没有可借鉴的成熟的数据仓库主题以及模型,所以,我们在摸索建设两年的时间里,我们目前总结了下面比较适合我们现状的七大主题(后续可能还会新增):

dw topic

参与人主题

用户子主题:使用我们服务的所有人都是我们的用户,这是我们数据中至关重要的实体,也是我们数仓中非常重要的一个主题,对用户数据的系统化建设能够很好的帮助我们企业快速的发展,不断提高用户的体验、扩大我们的用户群。

BD子主题:通过BD的业务扩展,建立我们与商户之间的关系,让用户通过我们的服务访问到商户所发布的信息,对BD数据的建设,能够让我们的商户覆盖更加迅速、让我们和商户之间的关系更加紧密。

供应商子主题:供应商无论作为直签还是作为三方签约对象,对我们的业务发展都非常重要,通过对其数据的建设,可以让我们彼此双赢,通过我们的平台让双方的业务迅速发展。

流量主题

用户通过App或PC或I版、微信等等形式访问我们的服务,形成了对我们企业至关重要的流量,本主题也是比较具有互联网特色的主题,对于流量的数据建设能够让我们不断优化我们的产品、服务,给我们带来更多的流量、更快的扩张。

订单主题

当用户给我们带来流量的同时,他们也会产生交易,订单主题的独立建设以及其重要性我这里就不再赘述了,在所有的互联网以及传统公司里,该主题都是至关重要的。

POI主题

这个主题也具有我们自身的O2O特色,实际上这个主题与阿里的商家主题比较类似但又具备自己的特点,对于POI自身的重要性就不再过多介绍,通过对POI的数据集中建设能够让我们给POI带去更好的服务与回报。

产品主题

与POI强相关的就是产品了,如何让产品能够更加的贴近用户的需求以及产生更多的交易、流量,产品数据主题的建设及目的的意义就在于此。

运营主题

我们的业务发展将不再依靠粗暴的补贴式的扩张发展模式,需要依赖现在的精细化运营方式,运营数据主题的建设就有了非常强的必要性,通过数据进行精细化运营已经成为我们运营的主要发展趋势。

结算主题

实际上,这个主题在传统企业里面如银行、电信等等都是至关重要的,对我们酒旅而言,建设它的意义能够不断优化商家体验、提高财务结算与管理能力。

整体架构

我们的七个主题基本上都采用6层结构的方式来建设,划分主题更多是从业务的角度出发,而层次划分则是基于技术,实质上我们就是基于业务与技术的结合完成了整体的数据仓库架构。下面介绍一下具体的一些主题案例:

dw architecture

订单主题

在订单主题的建设过程中,我们是按照由分到总的结构思路来进行建设,首先分供应链建设订单相关实体(数据整合中间层3NF),然后再进行适度抽象把分供应链的相关订单实体进行合并后生成订单实体(数据整合层3NF),后续在数据整合层的订单实体基础上再扩展部分维度信息来完成后续层次的建设。

dw architecture

流量主题

流量主题与订单主题的区别是非常大的,它的数据来源具有一定的特殊性,我们的总体建设思路是总-分-总的思路,首先从总的日志数据中剥离出来属于酒旅事业群的数据,后续再从这些数据中分拆到各个具体的页面(可以适当补充些各个页面中所具有的B端信息,如POI详情页中增加POI品类信息),最后再把各个页面进行合并生成总的日志主题表(最终这张表会满足80%以上的相关流量统计需求)。

dw architecture

运营主题

运营主题与订单、流量主题相比也具有自身的特殊性,主要原因也在于其数据来源本身的特殊性,关于它的建设思路总体也是总-分-总,但我们本身的数据来源大多已经不是最底层的ODS数据,而是一些已经加工过的事实表或维度表,所以我们整体的建模原则基本上都是维度建模。

dw architecture

dw architecture

基于上面介绍的几个主题,我们实际上在做分主题的层次架构时也是基于本主题的业务、数据特点作为最终的判断条件,没有绝对的一种层次架构适用于所有的主题,需要综合各项要素来进行综合判断才能设计比较合适的层次架构。

作者简介

德臣,美团点评酒旅事业群数据仓库专家,2003年毕业于湖南大学,2015年加入美团,整体负责酒旅事业群的离线数据仓库、实时数据仓库建设。

酒旅数据仓库团队,结合酒旅业务的发展,灵活利用大数据生态链的相关技术,致力于离线数据仓库与实时数据仓库的建设,为业务提供多样化的数据服务。

最后发个广告,美团点评酒旅数据仓库团队长期招聘数据仓库、大数据开发、数据产品开发等方向的技术专家,有兴趣的同学可以发送简历到yangdechen#meituan.com。

相关 [美团 数据仓库 建设] 推荐:

美团点评酒旅数据仓库建设实践

- - 美团点评技术团队
在美团点评酒旅事业群内,业务由传统的团购形式转向预订、直连等更加丰富的产品形式,业务系统也在迅速的迭代变化,这些都对数据仓库的扩展性、稳定性、易用性提出了更高要求. 对此,我们采取了分层次、分主题的方式,本文将分享这一过程中的一些经验. 随着美团点评整体的系统架构调整,我们在分层次建设数据仓库的过程中,不断优化并调整我们的层次结构,下图展示了技术架构的变迁.

携程机票数据仓库建设之路

- - IT瘾-dev
 华智,携程高级研发经理,现负责数据仓库技术架构、性能优化、数仓规范制定、数据模型设计以及数据应用开发. 随着大数据技术的飞速发展,海量数据存储和计算的解决方案层出不穷,生产环境和大数据环境的交互日益密切. 数据仓库作为海量数据落地和扭转的重要载体,承担着数据从生产环境到大数据环境、经由大数据环境计算处理回馈生产应用或支持决策的重要角色.

美团DB数据同步到数据仓库的架构与实践

- - 美团点评技术团队
在数据仓库建模中,未经任何加工处理的原始业务层数据,我们称之为ODS(Operational Data Store)数据. 在互联网企业中,常见的ODS数据有业务日志数据(Log)和业务DB数据(DB)两类. 对于业务DB数据来说,从MySQL等关系型数据库的业务数据进行采集,然后导入到Hive中,是进行数据仓库生产的重要环节.

数据仓库

- Ran - Linux@SOHU
翻译:马少兵、曾怀东、朱翊然、林业. 尽管服务器存储、处理能力得到有效的提高,以及服务器价格的降低,让人们能够负担起大量的服务器,但是商业软件应用和监控工具快速的增加,还是使得人们被大量的数据所困扰. 在数据仓库领域中的许多系统管理员、应用开发者,以及初级数据库管理员发现,他们正在处理“海量数据”-不管你准备与否-都会有好多不熟悉的术语,概念或工具.

数据仓库简介、发展、架构演进、实时数仓建设、与离线数仓对比

- - zhisheng的博客
数据仓库也是公司数据发展到一定规模后必然会提供的一种基础服务,数据仓库的建设也是“数据智能”中必不可少的一环. 本文将从数据仓库的简介、经历了怎样的发展、如何建设、架构演变、应用案例以及实时数仓与离线数仓的对比六个方面全面分享关于数仓的详细内容. 原地地址: https://ververica.cn/developers/how-to-do-real-time-counting/.

数据仓库概念

- - 互联网 - ITeye博客
数据仓库:是一个数据库环境,它提供用户用于决策支持的当前和历史数据,这些数据在传统的数据库中不方便得到. 特点:面向主题,集成的,相对稳定的,反应历史变化的. 组成:数据仓库的数据库,数据抽取工具,元数据,访问工具,数据集市,数据仓库管理,信息发布系统. 数据挖掘:就是从大量数据中获取有效的,新颖的,潜在有用的,最终可理解的模式的过程.

大数据仓库-kudu

- - 数据库 - ITeye博客
数据仓库里面存储引擎是非常重要的,存储引擎的好坏,基本决定了整个数仓的基础. cloudera公司最近发布了一个kudu存储引擎. 按照cloudera的想法,kudu的出现是为了解决,hbase,parquet不能兼顾分析和更新的需求,所以需要一个新的存储引擎可以同时支持高吞吐的分析应用以及少量更新的应用.

数据仓库的设计与开发

- - 数据库 - ITeye博客
     数据仓库系统的设计与开发. 1)       收集和分析业务需求.   用户需求,管理人员需求. 2)       建立数据模型和数据仓库的物理设计.   概念模型,逻辑模型,物理模型. 3)       定义数据源. 数据源面向应用,不是面向主题,而且数据源之间存在多个不一致的情况,所以必须在已有的系统中定义记录系统(内容正确,在多个数据源间起决定作用的操作型数据源).

oracle数据仓库设计指南

- - 数据库 - ITeye博客
ODS(Operational Data Store)是数据仓库体系结构中的一个可选部分,ODS具备数据仓库的部分特征和OLTP系统的部分特征,它是“面向主题的、集成的、当前或接近当前的、不断变化的”数据.     一般在带有ODS的系统体系结构中,ODS都设计为如下几个作用:. 1 )    在业务系统和数据仓库之间形成一个隔离层.

[原]数据仓库元数据管理

- - oycn2010的专栏
元数据管理, 简单的做就是EXCEL结合版本管理等传统工具管理, 专业点就用专门的元数据管理工具;. 数据字典--> 数据知识库. 业务元数据,技术元数据,管理元数据. 参照:SAP元数据管理平台:按业务(角色)分类,按技术类型分类(特征,关键值,DSO,InfoCube),数据流程图. 按照传统的定义,元数据(Metadata)是关于数据的数据.