【面经】美团大数据开发面经

欢迎点击此处关注公众号

自我介绍
想在哪工作
学校里有什么成果
学校里的项目中遇到最大的问题是什么,怎么解决,收获是什么
数据仓库和数据库的区别

数据库与数据仓库的区别实际讲的是 OLTP 与 OLAP 的区别。

操作型处理,叫联机事务处理 OLTP(On-Line Transaction Processing),也可以称面向交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。用户较为关心操作的响应时间、数据的安全性、完整性和并发的支持用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。

分析型处理,叫联机分析处理 OLAP(On-Line Analytical Processing)一般针对某些主题历史数据进行分析,支持管理决策。

对大数据岗位的理解?你想做哪一种。为什么
大数据开发做需求的流程
实习中什么情况下遇到数据倾斜,怎么解决

大量 key 为空值的情况,所有空值进入一个 reducer 中导致倾斜。

解决:对空值加随机数打散到多个 reducer 中处理。

多事务事实表是什么

事实表的通常可以划分为如下三类:

  • 事务事实表;
  • 周期快照事实表;
  • 累积快照事实表。

事务事实表又可以分为:

  • 单事务事实表;
  • 多事务事实表。

以订单过程为例,一个订单业务过程可以简化为下单和支付两个业务事件,两个事件共享一个订单 Id 及相应商品的维度信息,但这两个事件可以有不同的业务度量,举例来讲就是下单时有下单金额,支付时有实际支付金额,优惠金额等等。
对于数仓建设来讲,在描述订单业务过程,设计订单事实表模型时,就会面临一个选择:将下单和支付两个业务事件拆开,分别构建单事务事实表还是构建一张多事务事实表。
单事务事实表:

  • 优点在于各个事实表的业务语义明确,表分区字段直接采用表达的业务时间即可,方便下游使用方理解。
  • 缺点则是会冗余订单维度相关的数据,并且对于同时查询下单和支付度量时,会有表连接的计算开销。

多事务事实表:

  • 此时表分区字段就不由具体的业务语义,需要在表中增加相应字段用明确时间语义。举例来讲对于 2021-01-26 的分区,需要有 ‘是否当天下单’&'是否当天支付’两个字段来辅助判断分区的时间语义,然后在表中包含下单和支付的度量,对于尚未发生的度量,可以置零。
  • 缺点:对于下游使用有一定的理解难度,且度量中可能会有很多 0 值。
  • 优点:可以避免表连接问题。

上面两种方案的出发点都是在与每个分区只保存增量的数据,尽量避免存储上的浪费,同时分区数据量减少,也可以提升查询计算的速度,降低计算的开销。

举例你知道的大数据组件,干什么用的
Elasticsearch 和 ClickHouse 的应用场景区别

都可以用于复杂查询,实时计算返回结果。

Elasticsearch 提供全文检索功能,最擅长的主要是完全搜索场景(where过滤后的记录数较少),在内存富裕运行环境下可以展现出非常出色的并发查询能力。但是在大规模数据的分析场景下(where过滤后的记录数较多),ClickHouse 凭借极致的列存和向量化计算会有更加出色的并发表现,并且查询支持完备度也更好。ClickHouse的并发处理能力立足于磁盘吞吐,而 Elasticsearch 的并发处理能力立足于内存 Cache,这使得两者的成本区间有很大差异,ClickHouse 更加适合低成本、大数据量的分析场景,它能够充分利用磁盘的带宽能力。数据导入和存储成本上,ClickHouse 更加具有绝对的优势。

Elasticsearch 和 HBase 的应用场景区别

总结:ES 适合复杂的聚合查询,HBase 适合简单查询。

ElasticSearch

优点

(1) 其实就是一个搜索引擎,底层是 lucene,支持全文搜索;

(2) 能够满足国内大多数人的全文搜索的需求,百度、Google 就是使用 es 做的全文搜索;

(3) es 可以为你自动建立索引,实现高性能的复杂聚合查询;

(4) 在复杂的查询也能够达到不错的性能,让开发者不用为如何建立索引而头痛。

缺点
最明显的就是字段类型无法修改、写入性能较低、高性能资源消耗。

应用场景
es 的全文搜索使他称为构建搜索引擎的利器,除此之外,es 适合复杂的聚合查询,这一特点还使得 es 非常适合做数据分析使用。

HBase

优点

(1) 继承了 hadoop 项目的优点,适合对海量数据的支持;

(2) 极强的横向扩展能力;

(3) 使用廉价的 PC 机就能够搭建起海量数据处理的大数据集群。

缺点
对数据的读取带来了局限,只有同一列族的数据才能够放在一起,而且所有的查询都必须依赖于 key,这就使得很多复杂的查询难以实现。

应用场景
由于列式存储的能力带来了海量数据的容纳能力,因此非常适合数据量极大、查询条件简单、列与列之间联系不大的场景。

数仓建模的分层

ODS DWD DWS DIM APP

数仓建模有哪些模型,区别

星型模型:一级维度表

雪花模型:多级维度

ER 模型:遵循三范式,大数据开发不用

两道 SQL 题
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值