Redshift时间序列数据库的Dist / Sort键

时间:2019-12-19 01:56:27

标签: amazon-web-services amazon-redshift

我参与了一个时间序列遥测项目,我们将数据存储到Amazon Redshift中。我们有一个timestamp列用于收集时间。并且ClientIDIOt-ID表示客户端中唯一的IOT设备。

从查询特定日期/星期/月份的意义上来说,我们所有的查询都受时间限制。以下是好的dist / sort键吗?

  • 分发密钥-(客户端ID,IOT-ID)
  • 排序键-时间戳

1 个答案:

答案 0 :(得分:1)

Amazon Redshift的一般规则是:

  • 分发密钥设置为通常与其他表JOIN一起使用的字段。这样会将该列给定值的所有数据都放在同一片上,从而更容易与其他具有相同DISTKEY的表进行JOIN
  • 排序键设置为WHERE语句中最常用的字段。行将按此字段的顺序存储,从而更容易“跳过”不包含所需数据的磁盘块。 (这非常功能强大。)

因此,听起来timestamp字段是SORTKEY的理想选择。

DISTKEY的选择取决于您的加入方式,但由于相关数据位于同一位置,因此也可以为GROUP BY提供帮助。