hive数仓开发之-数据表

本文介绍了Hive数仓中内部表和外部表的区别,包括它们在HDFS上的存储格式,如ORC和Parquet。讨论了分区和分桶策略,强调动态分区和静态分区的使用场景,并提到了外部表在临时分析计算中的作用。建议在建表时考虑优化方案,如选择适当的分区和存储格式。
摘要由CSDN通过智能技术生成

建表

在数仓里,数据表可以分为内部表和外部表。内部表和外部表的区别是内部表的数据存储是在当前用户所在的hdfs目录下,而外部表则不是。

  1. 内部表和外部表

内部表在hdfs上的常见文件存储格式有 textfile,orc,rc,pqrquet 等存储格式,每种格式的优劣这里先不做具体展开,项目上基于性能和存储考虑,一般选择orc 或者是parquet,o确切来说orc比parquet更省存储,性能差不多。如果是考虑后续更换计算引擎(比如说是spark,或者是impala) 那还是选用parquet 更适合一点(扩展性更强)。

  1. 分区分桶

这种策略是在应对数据量较大的情况下采用的。
分区可以是一级分区,二级分区,乃至三级分区(example:天-小时-分钟)。

hive表的表名在hdfs上实际是一个文件目录,分区只是文件目录下的子目录而已

在这里插入图片描述
分区也分为动态分区和静态分区,静态分区的是往hive表的某一个固定分区写入数据,而动态的则是根据分区字段的值写入对应的分区,所以当选择动态分区的时候,要看下参数有无打开,或者是
在sql之前执行以下脚本

set hive.exec.dynamic.partition=true; set
hive.exec.max.dynamic.partiti

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值