数据仓库复习

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

 

### Hive 数据仓库概述 Hive 是一种基于 Hadoop 的数据仓库工具,允许用户查询和管理大规模布式存储的据集。通过 SQL 类似的接口,Hive 提供了一种机制来映射结构化据文件到表格形式,并支持复杂的查询操作。 #### Hive 表的类 在 Hive 中存在两种类型的表:内部表(Managed Tables)和外部表(External Tables)。对于内部表而言,当删除该表时,其对应的底层据也会被一同移除;而对于外部表,则仅会删除元据定义而保留实际据[^3]。 #### 元据管理 关于元据方面,在 Hive 中,表名、表结构、字段名及其类型等信息共同构成了所谓的元据。这些元据默认情况下会被保存在一个名为 derby 的小型嵌入式据库里,不过出于性能考虑通常建议采用 MySQL 来作为 Metastore 的持久层解决方案。 ```sql CREATE TABLE employees ( id INT, name STRING, department STRING, salary FLOAT ); ``` 这段代码展示了如何创建一张简单的员工记录表 `employees` ,其中包含了四个属性列——编号 (`id`) 、姓名 (`name`) 、部门 (`department`) 和工资 (`salary`) 。这是一张典型的事实表实例[^1]。 #### ETL 过程 值得注意的是,互联网环境下的数据仓库相较于传统的有着显著差异,尤其是在 ETL 流程上更为复杂多变。除了常规的操作外还涉及到更多实时处理需求以及更灵活的服务提供方式如据立方体或据中台架构[^2]。 #### 关系型据库范式回顾 为了更好地理解 Hive 设计背后的理念,有必要重温一下关系型据库里的几个重要概念之一 —— 范式理论。具体来说: - **第一范式 (1NF)** :确保每列都不可再割成多个部; - **第二范式 (2NF)** :建立在满足 1NF 的基础上进一步消除冗余依赖关系; - **第三范式 (3NF)** :继续减少传递函依赖直到无法简化为止。 以上三个层次几乎涵盖了大部应用场景下所需遵循的设计原则[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值