数据仓库复习

北城余情 提交于 2019-12-24 18:52:58

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、数据结构

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!