验证collect_set后的数据是否比展开的数据占用空间小

5 篇文章 0 订阅
2 篇文章 0 订阅

验证collect_set后的数据是否比摊开的数据占用空间小?

文件格式:parquet

去重记录数:776885759

验证方式:

读取用户日志表,A表记录用户id和日志时间的去重记录,B表把用户id和该用户对应的日志时间的数组作为一行来记录。B表展开后与A表相同。两表存储的数据量是相同的。最后观察A表和B表的磁盘占用空间是否相同。

实现结论:

A表占用10.9G,B表占用4.7G,说明collect_set后的数据占用空间更小,节省磁盘空间57%。

  表A占用空间

 表B占用空间

 

 

-- 表A:
create table music_db_test.tmp_xxt_20211012_dwd_user_action_impress_d_1
stored as parquet
as 
select distinct user_id,log_time
from music_iplay.dwd_user_action_impress_d
where dt='2021-10-11';

-- 表B:
create table music_db_test.tmp_xxt_20211012_dwd_user_action_impress_d_2
stored as parquet
as 
select user_id,collect_set(log_time) as log_time_array
from music_iplay.dwd_user_action_impress_d
where dt='2021-10-11'
group by user_id;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值