2021数仓面试笔记

一、hive调优点

  并行执行模式
  推测执行模式
  数据倾斜时开启负载均衡模式
  map缓冲区大小
  溢写磁盘百分比
  开启combanier提前预聚合
  设置reduce拉取数据的内存缓冲区大小
  开启kryo序列化
  使用Snappy压缩方式
  合并小文件
  开启Jvm重用

数据倾斜处理
hive on hadoop数据倾斜 :

  开启map聚合并开启负载均衡模式
  调大reduce个数,增大任务并行度
  SQL逻辑优化 (count(distonct key))
  调节mapjion的触发条件,使reduce join转为map join

hive on spark数据倾斜:

  在Hive ETL阶段按照某一纬度用特定格式进行聚合数据
  过滤导致倾斜但是舍弃对业务没有影响的key
  设置任务并行度 和shuffle任务并行度
  对SQL逻辑进行调优

数据倾斜处理过程和前后差异(示例)

  通过在ETL阶段按照客户id将客户的购买和基本数据进行预聚合,并将一些没用的导致倾斜的空值过滤掉,然后调节了任务并行度,随后将count(diatinctkey)换成group by 再count的方式,任务执行时间由原来的n个多小时变成min/hour…

二、数据结构与算法

  冒泡(时间复杂度O(n²) 空间复杂度O(1) 总共需要比较arrlegth-1次 每次比较i-ArrLegth-1次)

  快速排序(时间复杂度 O(nlogn)空间复杂度(logn)首先选取第一个元素作为比较基准元素 将大于该该元素的挪到元素右边,小于的挪到左边 递归调用)

  归并排序(时间复杂度O(nlogn)空间复杂度O(n)分而治之 )

  二分查找(时间复杂度O(log2n) 空间复杂度O(1) 折半查找 基于有序数组)

三、设计模式:

  单例模式(饿汉式|懒汉式|双重检查|枚举|静态内部类)

  工厂模式(普通工厂 | 工厂方法模式 | 抽象工厂模式 )

四、Spark参数调优点(参考链接

  cache内存占比
  shuffle内存占比
  并行度
  executer个数|内存|cpu数
  driver内存
  executer堆外内存空间大小
  链接等待时长

五、常用的Hive函数

  date_add|date_sub|date_format|getjsonobject|regexp_replace|last_day|collect_set|collect_list|concat_ws|split|later view exploderd|laglead

六、mapreduce过程

在这里插入图片描述
在这里插入图片描述

七、Hadoop Yarn任务调度流程

八、SparkStreaming 任务调度和调优

九、数仓建模流程

  1. 确定主题
  2. 确定量度【统计的指标】
  3. 确认粒度【最小粒度原则】
  4. 确认维度【分析的各个角度,确认维度的层次和级别】
  5. 创建事实表

十、缓慢变化维(拉链表的实现步骤)

十一、count(1)count(*)count(字段)的区别

  count(1)和count(*)都会对全表进行扫描,统计所有记录的条数,包括那些为null的记录,因此,它们的效率可以说是相差无几。而count(字段)则与前两者不同,它会统计该字段不为null的记录条数。

十二、Sql执行顺序

SQL语句执行顺序

十三、平常工作中的任务需求和各种业务逻辑以及做了什么?

十四、各种SQL业务实现

十五、传统数据库和数据仓库的区别?OLAP和OLTP的区别?

  OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。二者的主要区别对比如下表所示。

对比属性OLTPOLAP
读特性每次查询只返回少量记录对大量记录进行汇总
写特性随机、低延时写入用户的输入批量导入
使用场景用户,Java EE项目内部分析师,为决策提供支持
数据表征最新数据状态随时间变化的历史状态
数据规模GBTB到PB
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值