基于Spark的离线数仓架构【面试吹牛草稿】

推荐阅读文章列表:大数据开发面试笔记V4.0 || 面试聊数仓第一季 || 小白大数据学习路线

我相信大多数同学在面试的过程中经常会被问到:你可以介绍一下数仓的分层架构吗?

你如果这样回答:可以,数仓一般分为ods、dwd、dim、dws、ads层,ods层负责数据接入,巴拉巴拉...

那么这样并不会让面试官眼前一亮

你如果这样回答:可以,我自己项目中的数仓是分为ods、dwd、dim、dws、ads层,我之前也看过大厂真实的数仓架构,分层思想基本都一致,比如美团外卖,他们分为ods、idl、cdl、mdl、adl,巴拉巴拉...(最后的时候你反问面试官:我感觉每家公司的数仓架构都基本一致,我想问一下你们公司数仓架构是怎样的,还有是如何划分职责的)

那么这样回答一定会让面试官认为你是一个数仓理论基础扎实、学习能力强同时有架构思维的同学

以下内容来自美团外卖离线数仓架构负责人的汇报~

美团外卖离线数仓架构

业务介绍

美团外卖的交易过程:用户可以通过美团的各种用户终端(包括美团外卖的APP或者美团 APP、QQ/微信等)下单,然后商家接单、骑手配送,三个阶段完成一笔交易。这一系列交易过程,由包括用户端、商家端、配送平台、数据组、广告组等各个系统协同完成。外卖数据组主要是:

  • 给用户端、商家端提供业务需求
  • 给前端提供需要展示的数据
  • 给广告、算法团队提供特征等数据,提高算法效率
  • 向城市团队提供业务开展所需数据
  • 前端提供埋点指标、埋点规范相关数据

整体架构介绍

  • 数据源层:包含接入的原始数据,包括客户端日志、服务端日志、业务库、集团数据、外部数据等。
  • 数据加工层:使用 Spark、Hive 构建离线数仓、使用 Storm、 Flink 实时数仓。在数仓之上针对服务对象建设各种数据集市,比如:面向总部使用的总部数据集市面向行为数据的流量数据集市面向线下城市团队的城市团队集市面向广告的广告集市面向算法的算法特征
  • 数据服务层:主要包括存储介质的使用和数据服务的方式。存储:主要使用开源组件,如 Mysql, HDFS, HBase, Kylin, Doris, Druid, ES, Tair 等数据服务:对外数据查询、接口以及报表服务
  • 数据应用层:主要包括主题报表、自助取数工具、增值产品、数据分析等支撑业务开展,同时依赖公司平台提供的一些工具建设整体数据应用。

数仓建设

  • ODS:数据源层,主要职责是接入数据源,并做多数据源的整合
  • IDL:数据集成层,主要职责是:业务主题的划分、数据规范化,比如商家、交易、用户等多个主题。这一层主要起到缓冲的作用,屏蔽底层影响,尽量还原业务,统一标准。
  • CDL:数据组件层,主要职责是划分分析主题、建设各个主题的基础指标,比如商家交易、用户活动等多个主题。这样针对同一个分析对象统一了指标口径,同时避免重复计算。
  • MDL:数据集市层,主要职责是建设宽表模型、汇总表模型,比如商家宽表、商家时段汇总表等。主要作用是支撑数据分析查询以及支持应用所需数据。
  • ADL:数据应用层,主要职责是建设应用分析、支撑多维分析应用,比如城市经营分析等。
#数据人的面试交流地##24届软开秋招面试经验大赏##我发现了面试通关密码##大数据#
全部评论

相关推荐

3 33 评论
分享
牛客网
牛客企业服务