gpt4 book ai didi

hadoop - 仅基于月/年对配置单元表进行分区或分桶以优化查询

转载 作者:可可西里 更新时间:2023-11-01 16:31:55 26 4
gpt4 key购买 nike

我正在构建一个包含大约 40 万行消息传递应用数据的表。当前表的列看起来像这样:


消息标识符(整数)|发件人用户 ID(整数)| other_col(字符串)| other_col2 (int) | create_dt(时间戳)

我将来要运行的很多查询都将依赖于涉及 create_dt 列的 where 子句。因为我预计这张表会增长,所以我想立即尝试优化它。我知道分区是一种方式,但是当我根据 create_dt 对其进行分区时,结果分区太多,因为我的每个日期都可以追溯到 2013 年 11 月。

有没有办法改为按日期范围进行分区?每3个月分区一次怎么样?甚至每个月?如果这是可能的 - 我将来可能有太多分区导致效率低下吗?还有哪些其他可能的分区方法?

我也读过有关分桶的内容,但据我所知,只有在对分桶所基于的列进行联接时,这才有用。我很可能只在列 sender_userid (int) 上进行连接。

谢谢!

最佳答案

我认为这可能是过早优化的情况。我不确定您对“太多分区”的定义是什么,但我们有类似的用例。我们的表按日期和客户列分区。我们的数据可以追溯到 2013 年 3 月。这创建了大约 160k+ 个分区。我们还在日期上使用了一个过滤器,我们没有发现这个模式有任何性能问题。

附带说明一下,Hive 在扩展到数千个分区和表的数百个方面变得越来越好。

另一方面,我很好奇您为什么首先要为此使用 Hive。 40 万行数据量很小,并不适合 Hive。

关于hadoop - 仅基于月/年对配置单元表进行分区或分桶以优化查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27787271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com