目录
-
按天分区表
-
关于分区
-
唯一键和标准化
-
同一份数据多种处理
-
对于每个表的分区
-
分桶表数据存储
-
为表增加列
-
使用列存储表
-
总是使用压缩
一、按天分区表
按天划分表就是一种模式,每天一张表的方式在数据库领域是反模式的一种方式,按天划分的表建议使用分区表,hive通过where子句中的表达式来选择查询所需要的指定的分区,这样查询执行效率高。

二、关于分区
一个分区对应着一个包含有多个文件的文件夹,如果指定的表存在数百个分区,每天都会创建好几万个小文件,保持多年之后,就会超出NameNode对系统云数据信息的处理能力,因为HDFS namenode会将所有的文件系统的元数据信息加载到内存中,虽然每个文件只需要少量字节大小的元数据(大约150字节/文件)。
而且小文件容易导致处理时间长,MapReduce会将一个任务(job)转换成多个任务(task)。默认情况下,每个task都是一个新的jvm实例,jvm开启和销毁的时间中销毁可能会比实际处理数据的时间消耗要长。
分区有两种策略

本文介绍了Hive的高效使用技巧,包括按天分区表以提高查询效率,讨论了分区策略,强调了非标准化数据的利弊,展示了如何用同一份数据实现多种处理,以及如何通过分桶表平衡数据分布。同时,还涵盖了为表增加列、使用列式存储和始终启用压缩等优化方法。
最低0.47元/天 解锁文章
1327

被折叠的 条评论
为什么被折叠?



