imV*_*mVJ 2 amazon-web-services amazon-redshift
我在Redshift上有一张约300米记录的表格.
无论如何我们可以指定年月作为分配密钥而不是时间戳.如果我选择关键的diststyle,它会改善性能,因为我们主要需要查询季度数据.
你不希望这样做.
在Amazon Redshift中,Distribution Key(DISTKEY)用于在切片之间分配数据(每个节点有多个切片).当查询使用DISTKEY连接两个表时,它运行得更快,因为与该键相关的两个表中的数据都在同一个片上 - 不需要在片之间移动数据,并且片可以并行操作.DISTKEY应该是您最常使用的字段 - 通常将JOIN表连接在一起.
还有一个Sort Key(SORTKEY)可以对存储在切片上的数据进行排序.在WHERE子句中使用此SORTKEY 的查询将更有效,因为查询可以跳过磁盘上的块.每个1MB磁盘块包含与一个表中的一列相关的值.每个块都有一个区域图,用于标识块中的最小值和最大值.如果块不包含与WHERE子句匹配的值,则Redshift不需要读取块.这使得查询非常快.
因此,如果您主要查询季度数据,则应将表的SORTKEY设置为timestamp字段.这将允许每个切片并行处理数据,同时跳过不相关的磁盘块.不要使用DISTKEY的日期值 - 这将导致只有一个切片执行查询,并且运行速度会变慢.相反,将DISTKEY设置为您主要用于将该表与其他表(例如客户ID)连接的内容.
| 归档时间: |
|
| 查看次数: |
575 次 |
| 最近记录: |