gpt4 book ai didi

amazon-web-services - 我们可以只使用时间戳列的年月作为 Amazon Redshift 中的分布键吗

转载 作者:行者123 更新时间:2023-12-02 08:17:59 25 4
gpt4 key购买 nike

我在 Redshift 上有一个包含大约 3 亿条记录的表格。

无论如何我们可以将年月指定为分发 key 而不是时间戳。如果我选择 key diststyle 是否会提高性能,因为大多数情况下我们需要查询季度数据。

最佳答案

不想这样做。

在 Amazon Redshift 中,Distribution Key (DISTKEY) 用于在切片之间分发数据(每个节点有多个切片)。当查询使用 DISTKEY 连接两个表时,它运行得更快,因为与该键相关的两个表中的数据位于同一切片上——不需要在切片之间移动数据,切片可以并行操作。 DISTKEY 应该是您最常用于JOIN 表的字段。

还有一个排序键 (SORTKEY) 用于对存储在切片上的数据进行排序。在 WHERE 子句中使用此 SORTKEY 的查询将更有效地工作,因为查询可以跳过磁盘上的 block 。每个 1MB 的磁盘 block 包含与一个表中的一列相关的值。每个 block 都有一个区域图,用于标识 block 中的最小值和最大值。如果该 block 不包含与 WHERE 子句匹配的值,则 Redshift 不需要读取该 block 。这使得查询非常快。

因此,如果您主要查询季度数据,则应将表的SORTKEY 设置为时间戳字段。这将允许每个切片并行处理数据,同时跳过不相关的磁盘 block 。 不要为 DISTKEY 使用日期值——这将导致只有一个切片执行查询并且运行速度会变慢。相反,将您的 DISTKEY 设置为您最常用于将该表与其他表连接的内容(例如客户 ID)。

关于amazon-web-services - 我们可以只使用时间戳列的年月作为 Amazon Redshift 中的分布键吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40148225/

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