Hive分层数仓的处理

本文详细介绍了Hive分层数仓的设计与处理,包括ODS、DWD和DWS层的操作,如创建LZO压缩分区表、日志数据加载、维度表和事实表的处理,以及拉链表的制作。强调了在处理过程中需要注意的索引、切片和数据同步策略等问题。
摘要由CSDN通过智能技术生成

Hive分层数仓的处理(代码层面)

分层处理

五层分层设计
ODS
DWD
DWS
DWT
ADS

ODS层

1、创建支持LZO压缩的分区表


2、数据加载

3、脚本语句

DWD层

1、建表

 drop table if exists dwd_xxx
 create external table dwd_xxx(
 	`表字段` 字段类型 COMMENT '字段注释'
 ) COMMENT '表注释'
 partitioned by (dt string) --按照时间创建分区
 stored as parquet --采用parquet列式存储
 location '你想要把这张表存放在hdfs上的位置'
 tblproperties('parquet.comperssion'='lzo';--表采用LZO压缩

备注:
1、数据采用 parquet 列式存储,是可以支持切片的,不需要再对数据创建索引。
2、如果采用 text 方式存储,需要采用支持切片的。lzop压缩方式并创建索引。

2、日志数据加载

SET hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
insert overwrite table dwd_xxx partition(dt='日期')
select
	get_json_object(xxx)
from
	ods_xxx
where 
	dt='日期'
and
	xxx

备注:
1、由于执行 count(*) 操作,默认采用的是 CombineHiveInputFormat,不能识别 lzo.index 为索引文件,将索引文件当作普通文件处理。更严重的是,这会导致LZO文件无法切片。因此我们需要在执行前,声明使用 HiveInputFormat;

3、维度表数据加载

SET hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
inset overwrite table dwd_dim_xxx partition(dt='日期')
select
	dim1.该维度表内部字段,
	dim2.该维度表内部字段,
	dim3
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Persimmon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值