Redshift文档将时间序列表标识为最佳实践: http://docs.aws.amazon.com/redshift/latest/dg/c_best-practices-time-series-tables.html
但是,它没有解决以下任何问题:
我的情况:
我建议的解决方案:
编辑:添加说明,确定已回答哪些问题,并在建议的解决方案中添加一些细节。
答案 0 :(得分:2)
您建议的过程听起来相当不错!虽然我无法回答您的所有问题,但这里有一些信息:
任何写入union-all视图并使用redshift的方法都会将这些插入指向正确的基础表?
视图是只读的。不可能写入视图,也不可能在期望Redshift将其发送到适当的表(例如给定日期的特定表)时插入数据。
在查询union-all视图时,如果日期范围超出查询条件,是否可以启用redshift消除某些底层分区(表)?
Redshift不会从查询中排除特定的表,但将通过区域映射来避免读取特定的磁盘块。写入磁盘的每个数据块都与特定的表和列相关联。该块具有区域图,它指示块中存储的该字段的最小值和最大值。
如果查询包含WHERE
子句,Redshift可以跳过不包含相关数据的块。这在SORTKEY
列上使用时特别有用,因为类似的数据范围组合在一起。
鉴于您使用的日期为SORTKEY
,如果查询包含基于该列的WHERE
子句,Redshift将读取极少数磁盘块。这与跳过表的想法非常相似,但它实际上是跳过读取磁盘块。