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


    欢迎点击此处关注公众号

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

    数据库与数据仓库的区别实际讲的是 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 题
  • 相关阅读:
    centos下安装jenkins.war
    C语言 -- 零基础入门详解
    markdown文档管理工具
    【JSON2WEB】06 JSON2WEB前端框架搭建
    【libevent_libev】libevent_libev
    计数排序【java实现】
    弹性数据库连接池探活策略调研(三)——DBCP
    R语言中做VIF分析的问题探索
    【电力系统】含电热联合系统的微电网运行优化附matlab代码和复现论文
    猿创征文|浅谈C语言入门
  • 原文地址:https://blog.csdn.net/weixin_45545090/article/details/126394094