- 主题:hive分区如何选择
不完全准确,分区key的选择以及分区数决定了查询时扫描的数据数量
楼主这个,按天分区,然后按id检索,是要扫描所有数据的
所以,还是要衡量一下每种检索的频次、响应时间需求等
不过既然数据量不太多,按月和id联合起来分区,应该能平衡吧
【 在 eventvwr 的大作中提到: 】
: hive的分区其实就是个目录。查询速度只取决要扫描的数据块个数和大小。和分区数多少没有绝对的关系,你当前的分区方式,查询肯定更快啊,但是快的有限,因为你的数据量太小了。但是写入速度肯定会慢很多
--
FROM 124.126.1.*
按id检索,显然指的是where id = xxxx
如果你的检索date都是必选条件,那这点数据按天分区完全够用
【 在 eventvwr 的大作中提到: 】
: where date = 20240109 and id = xxxxxx
: 这个咋会扫描所有的数据呢?无论是hive还是sparksql都不会扫描所有的数据吧
--
FROM 124.126.1.*
按ID分区就有用啊
【 在 zeus2615 的大作中提到: 】
: 他如果有不带时间戳的查询,你不管怎么分区都没用
: :......
: 论坛助手,iPhone
: ...................
--
FROM 124.126.1.*
我前面说过了,你所有的查询里都有天,在每天数据量不多的情况下,按天分区就足够了,分区内遍历找id并不慢
如果按天分区,分区内数据量过多,可以天+id联合分区
也可以考虑按月+id联合分区,需要计算一下分区大小
【 在 qianfeng018 的大作中提到: 】
: 确实是, 有不同的查询需求:
: 1 按ID,取某一天到某一天的全部数据,
: 2 按天,取某些ID的数据
: ...................
--
FROM 124.126.1.*