马蜂窝数据仓库的架构、模型与应用实践

点击上方“马蜂窝技术”,关注订阅更多优质内容

Part.1

马蜂窝数据仓库与数据中台

最近几年,数据中台概念的热度一直不减。2018 年起,马蜂窝也开始了自己的数据中台探索之路。

数据中台到底是什么?要不要建?和数据仓库有什么本质的区别?相信很多企业都在关注这些问题。

我认为数据中台的概念非常接近传统数据仓库+大数据平台的结合体。它是在企业的数据建设经历了数据中心、数据仓库等积累之后,借助平台化的思路,将数据更好地进行整合与统一,以组件化的方式实现灵活的数据加工与应用,以更清晰的数据职能组织应对业务的快速变化,以服务的方式更好地释放数据价值的一种方式。

所以,数据中台更多的是体现一种管理思路和架构组织上的变革。在这样的思想下,我们结合自身业务特点建设了马蜂窝的数据中台,核心架构如下:

在中台建设之前,马蜂窝已经建立了自己的大数据平台,并积累了一些通用、组件化的工具,这些可以支撑数据中台的快速搭建。作为中台的另一大核心部分,马蜂窝数据仓库主要承担数据统一化建设的工作,包括统一数据模型,统一指标体系等。下面介绍马蜂窝在数据仓库建设方面的具体实践。

Part.2

数据仓库核心架构

马蜂窝数据仓库遵循标准的三层架构,对数据分层的定位主要采取维度模型设计,不会对数据进行抽象打散处理,更多注重业务过程数据整合。现有数仓主要以离线为主,整体架构如下:

如图所示,共分为 3 层:业务数据层、公共数据层与应用数据层,每层定位、目标以及建设原则各不相同。

(1)业务数据层:包含 STG(数据缓冲层)与 ODS(操作数据层)两层,这两层数据结构与业务数据几乎一致。

  • STG:也叫数据准备区,定位是缓存来自 DB 抽取、消息、日志解析落地的临时数据,结构与业务系统保持一致;负责对垃圾数据、不规范数据进行清洗转换;该层只为 ODS 层服务;

  • ODS:操作数据层定位于业务明细数据保留区,负责保留数据接入时点后历史变更数据,数据原则上全量保留。模型设计依据业务表数据变更特性采取拉链、流水表两种形式。

(2)公共数据层:细分为 DWD(明细数据层)、DWS(汇总数据层)、DIM(公共维度层) 三层,主要用于加工存放整合后的明细业务过程数据,以及经过轻度或重度汇总粒度公共维度指标数据。公共数据层作为仓库核心层,定位于业务视角,提炼出对数据仓库具有共性的数据访问、统计需求,从而构建面向支持应用、提供共享数据访问服务的公共数据。

  • DWD:这一层是整合后的业务过程明细数据,负责各业务场景垂直与水平数据整合、常用公共维度冗余加工,以及明细业务标签信息加工;

  • DWS:汇总数据层按照主题对共性维度指标数据进行轻度、高度聚合;

  • DIM:对维度进行统一标准化定义,实现维度信息共享。

(3)应用数据层:DWA 层,主要用于各产品或各业务条线个性化的数据加工,例如商业化产品数据、搜索推荐,风控等。

Part.3

数据模型设计

3.1 方法选择

数据模型是对现实世界数据特征的抽象,数据模型的设计方法就是对数据进

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
马蜂窝是一个在线旅游社区,用户可以在该平台上分享旅行经验、发布旅游攻略等信息。如果我们需要获取马蜂窝的数据,可以使用Python编写爬虫代码来实现。 首先,我们需要导入必要的库,例如requests用于发送HTTP请求,BeautifulSoup用于解析HTML页面。然后,我们可以通过发送HTTP请求获取马蜂窝的网页源代码。 接下来,我们可以使用BeautifulSoup解析获取的网页源代码,并使用其提供的查找方法来定位需要的数据。例如,如果我们想获取旅游攻略的标题和内容,可以通过查找HTML页面中对应的标签和类名来获取相关的信息。 在处理数据的过程中,我们可以将获取到的数据保存到一个列表或字典中,方便后续操作。另外,如果需要获取多个页面的数据,我们可以使用循环来遍历不同的页面,并将每个页面的数据添加到同一个列表中。 最后,我们可以将获取到的数据保存到一个文件中,例如CSV或Excel格式,以便后续分析和使用。 需要注意的是,当编写爬虫代码时,我们需要遵守相关的法律法规和网站的使用规定。并且,为了避免给网站带来过大的负担,我们应该合理设置请求间隔和请求头,以及合理选择需要获取的数据的数量和频率。 综上所述,以上是一个简单的马蜂窝数据爬取的Python代码示例。当然,具体的实现方式可以根据具体需求和网站的特点来进行调整和完善。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值