1、数据仓库建设
一般在OLAP中使用维度建模,在OLTP中使用3NF建模
数据仓库的建设主要分为以下四个步骤 :业务建模 -> 领域建模 -> 逻辑建模 -> 物理建模 (要理解其大概步骤)
互联网数仓与传统数仓还是有所区别的,主要在操作的是人员、数据的加工ETL、以及对业务的支持模式(数据立方体或数据中台)
维度建模
缺点:一般在ODS层不用维度建模,因为无法百分百保证一致性,并且假如在ODS层时出错了,恢复数据的成本很大,
维度建模需要对数据较多的预处理,投入的存储空间和人力资源较大
优点:比较适合做分析
范式建模
缺点:范式建模不太适合做复杂的分析
优点:处理起来简单
要知道数据中台与数据库的区别
2、Sql应用题
(1)统计连续登录超过三天的用户
Mysql
(2)row_number实现
(3)limit 分页时跨度过大如何解决(子查询)
Hive
(4)row_number
(5)开窗函数
(6)行转列、列转行的方法
(7)缓慢变化维
3、优化方面
一、数仓整体优化可以从以下4个方面优化
(1)模型优化
选定合适的建模方法
适当拆表、合表、创建中间表
合理对待缓慢变化维
合理使用分区表、二级分区表等
(2)调度优化
尽量少依赖、减少长依赖
关键任务定时时间提前
生产任务与测试任务尽量库与库之间隔离
(3)同步优化
注意数据同步任务的资源性能
计算资源优化、减少数据倾斜
(4)脚本优化
尽量禁止Select*
尽量先做逻辑计算如UDF、再Join
尽量合表
尽量避免Map和Reduce倾斜
大表Join尽量先去重、Null值处理、从业务优化
二、Hive优化
(1)explain查看执行计划,定位数据倾斜
(2)合理增加map、reduce数量
(3)增加环形缓冲区的大小(默认100)
(4)开启map端合并
(5)开启combiner合并
(6)开启推测执行
(7)开启并行执行
(8)开启mapjoin、设置合理的mapjoin表的大小
(9)JVM重用
(10)存数据用压缩 stored as orc
orc、parqurt与snappy、textFIle的区别
Array、map、struct数据格式
三、spark优化
待写
4、算法题
字典排序、全排序、快排、选择、冒泡、归并、插入
5、数据结构
来源:CSDN
作者:H_crab
链接:https://blog.csdn.net/H_crab/article/details/103686120