gpt4 book ai didi

hive - Hive 中的偏斜与分区

转载 作者:行者123 更新时间:2023-12-01 06:19:29 26 4
gpt4 key购买 nike

经过Skewed tables之后在 Hive 中,我对倾斜表的数据存储方式以及分区表的处理方式感到困惑。有人可以用明显的例子清楚地说明这两个概念的区别

倾斜表和分区表

重合和不同在哪里?请提供示例。

最佳答案

倾斜表和分区表的目的相同,都是为了优化查询。但是,它们的工作方式和适用时间略有不同。

假设我们正在构建像 Strava 这样的健身追踪器,并且用户数据会不断发送给我们。

  • 分区:按日期和时间对这类数据进行分区是很正常的,比如/year=2017/month=10/day=12等。这样任何基于日期和时间的过滤器将非常快,例如。

SELECT col FROM table WHERE year=2017 AND month=10

  • Skewed table:某些用户可能不仅发送健身锻炼,还发送步行步数、地理位置、骑自行车、卡路里消耗、 sleep 等等。这些用户很少,但与普通用户相比,他们发送的数据量非常大。所以如果你想通过UserId查询,会很慢:

SELECT col FROM table WHERE year=2017 AND month=10 AND userid=20

然而,倾斜表在这里可以提供帮助。假设这些活跃用户是 20、23、25。现在您可以像这样创建存储数据:

/year=2017/month=10/day=12/userid=20
/year=2017/month=10/day=12/userid=23
/year=2017/month=10/day=12/userid=27
/year=2017/month=10/day=12/userid=others

如您所见,这些健身狂都有自己的目录。当您运行上面的相同查询(按用户 ID 过滤)时,这将导致快速查询。

还有更多内容,refer to this documentation .

关于hive - Hive 中的偏斜与分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44779607/

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