第四节课 hive的表分层

本文详细介绍了Hive的调优策略,包括分区和分桶的使用,数据倾斜的优化方法,以及数据仓库建模的架构和范式。重点讲解了如何通过数据分层和合适的表设计来提升查询效率。此外,还探讨了数据倾斜的原因和解决方案,如处理重复key,以及数据仓库发展过程中的不同阶段和建模方式。
摘要由CSDN通过智能技术生成

目录

hive调优优化

建表注意事项

数据倾斜优化

原因:

解决方案:

数据仓库建模架构:

数据仓库建模方式:

数据仓库建模范式:

分层设计:


hive调优优化

建表注意事项

1、分区,分桶

一般按照业务日期进行分区

2、一般使用外部表,避免数据误删

3、选择适当的文件储存格式及压缩格式

4、命名规范

5、数据分层,表分离

分区裁剪 where过滤,先过滤再join

分区分桶,合并小文件

左连接的时候,大表再左边,小标再右边

order by语句:是全局排列

sort by语句:是单reduce排序 只有一个reduce和order bu 没有区别

distribute by语句:是分区字段;

cluster by语句:可以确保类似的数据分发到同一个reduce task中,并且保证数据有序防止所有的数据分发到同一个reduce上,导致整体的job时间延长

数据倾斜优化

处理集中的key

原因:

1、key分布不均匀(实际上还是重复) 比如group by 或者 distinct的时候

2、数据重复,join笛卡儿积 数据膨胀

表现:

任务进度长时间维持再99%,100%,查看任务监控页面,发现只有少量reduce子任务未完成,因为其处理的数据量和其他reduce差异过大

解决方案:

1、看下业务上,数据源头能否对数据进行过滤,比如key为null,业务层面进行优化

2、找到key重复的具体值,进行拆分,hash,异步求和

数据仓库建模:

数据仓库的发展大致经历了三个过程

简单报表阶段

数据集市阶段

数据仓库阶段

数据仓库建模架构:

DB数据->ETL帖源层->ODS汇总数据->DM数据仓库->主题域DataMart

数据仓库建模方式:

1、分库分表,命名规范,库名以所在数据层开头命名 如:ods_dianxin_test

2、星型和雪花型建模

数据仓库建模范式:

1、1NF

1NF简单点就是原子性,列不可再分,没有重复的列也没有重复的行

基本上主要有主键的表都满足第一范式

2、2NF

1、2NF首先满足1NF

2、非主属性必须依赖于键的全部,如果只依赖于主键的一部分,则需要移出创建新表

数仓专业称谓:

1,事实表:事实表是用来存储主题的主干内容,一些外键指向维度表。事实表一般是没有主键的,基本都是外键。数据的质量完全由业务系统来把握。一般单表字段较多,数据量比较大

2,维度表:事实表中某个方向分支,必须有主键,用于关联事实表。一般数据量较小,变化缓慢。

3,宽表:字段和数据量比较巨大,很多维度杂糅在一起。好处:方便查询分析。缺点:没有规范。

4,拉链表:记录一个事物从开始,一直到当前状态的所有变化的信息

分层设计:

ODS数据运营层

DW数据仓库层

DWD数据明细层 维度退化

DWM数据中间层 轻度聚合

DWS数据服务层 数据集市,宽表

(DIM 维表层)

ADS/APP/DM 数据应用层,数据集市

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值