个人数仓开发面试题记录

一.广州电商公司

1.简单自我介绍

2.介绍下之前的公司离线数仓项目

3.mysql和hive区别?

4.sql的执行顺序?

5.hive的优化

6.说下你之前公司来,你的技能层次在每个公司?你怎么评价你的技能?

7.你的之前业务主要是做什么?我说了项目分工

8.数仓的分层,分几层?按照数据域分层,问几层?

9.sql优化一般怎么优化的?

10.非本专业怎么进行后续学习的?

11.系统函数怎么用的?

12.数据迁移怎么做的?

13.数据可视化界面怎么做的?bi你们讲解是谁负责

14.有用过dws层直接对接bi嘛?mysql数据库有用吗?为啥对接bi?

3.mysql和hive区别?

hive不是数据库,除了sql语法有点像,其他都不一样

hive mysql

存储位置 hdfs 本地磁盘

计算引擎 分布式mr、tez、spark 自己的单机的

计算效率 数据量大,快 小,快

数据更新 适合分析(select) 增删改查

5.hive的优化

group by

1)map端预聚合 (预聚合的配置参数为hive.map.aggr,默认值true)

2)数据倾斜时进行负载均衡处理

**通过将参数hive.groupby.skewindata(默认false)设置为true,那么在进行group by时,会启动两个MR job。**第一个job会将map端数据随机输入reducer,每个reducer做部分聚合操作,相同的group by key会分布在不同的reducer中。第二个job再将前面预处理过的数据按key聚合并输出结果,这样就起到了均衡的效果。

3)count(distinct)

当数据量大时,效率会很低,尤其是数据倾斜的时候。

可以通过group by代替count(distinct)使用。

4)本地模式

对于处理小数据量的任务,我们不需要通过集群模式进行处理(因为为该任务实际触发的job执行等开销可能比实际任务的执行时间还要长),Hive可以通过本地模式在单台机器上处理所有的任务。

复制代码
 set hive.exec.mode.local.auto=true;

------------------------------------------------------------

2)map Join: 大小表join,避免shuffle

3)SMB Join: sort merge bucket join

大表 join 大表:

分桶表,分桶字段 = 关联字段 = 桶排序 字段

分桶的数量,成比例

4)分区、分桶

分区:避免全表扫描

分桶:做SMB的时候, 抽样key判断倾斜

5)压缩 : snappy

6)存储格式 : 列式 orc

id name age

1 zs 18

2 ls 19

行式 1 zs 18 2 ls 19

列式 1 2 zs ls 18 19

查询效率高

存储结构更紧密,压缩后更小

select name from A

行式: text、sequnencefile

列式: orc、parquet

orc为hive而生的,跟hive性能更强

parquet兼容性更好

7)调整reduce的数量

指定参数 ,默认 -1 表示禁用

估算机制: 数据量/ 每个Reducer处理上限(默认256M)

特殊语法: orderby 、 count(distinct )

优先级: 特殊语法 > 参数 > 估算机制

8)谓词下推 默认开启

select xx from A join B on A.id=B.id and A.id>10

select xx from A join B on A.id=B.id where A.id>10

经过谓词下推,第二种也会先 过滤,再join,效果一样

9)并行执行 默认开启

10)开启cbo 默认开启

11)合并小文件

危害:

解决:

JVM重用

CombineHiveInputFormat

merge功能: 结束后,再另外启动一个job来合并小文件于16m的文件

小于 16m ==》 256m

map-only:默认开启

map-reduce:默认关闭,需要开启

12)使用多引擎

mr : 跑 年、月 时间跨度大、数据量大的指标

tez : 现在没用

spark : 跑日常天指标

set hive.execution.enginee = mr;

sql1;

set hive.execution.enginee=spark;

sql2;

相关推荐
Giser探索家9 分钟前
遥感卫星升轨 / 降轨技术解析:对图像光照、对比度的影响及工程化应用
大数据·人工智能·算法·安全·计算机视觉·分类
lisw051 小时前
数字化科技简化移民流程的 5 种方式
大数据·人工智能·机器学习
NewCarRen1 小时前
基于自动驾驶仿真软件的交通事故档案建模与分析
大数据·汽车功能安全
JAVA学习通2 小时前
Replication(下):事务,一致性与共识
大数据·分布式·算法
vivo互联网技术2 小时前
vivo HDFS EC大规模落地实践
大数据·hdfs·大数据计算与存储·erasure coding
api_180079054602 小时前
异步数据采集实践:用 Python/Node.js 构建高并发淘宝商品 API 调用引擎
大数据·开发语言·数据库·数据挖掘·node.js
科研服务器mike_leeso3 小时前
41 年 7 次转型!戴尔从 PC 到 AI 工厂的技术跃迁与组织重构
大数据·人工智能·机器学习
2501_913981783 小时前
2025年智能家居无线数传设备品牌方案精选
大数据·人工智能·智能家居
想ai抽3 小时前
吃透大数据算法-算法地图(备用)
大数据·数据库·spark
武子康5 小时前
大数据-126 - Flink一文搞懂有状态计算:State Backend 工作原理与性能差异详解 核心原理与作用
大数据·后端·flink