Redshift:如何查看表中分析的列?



是否有办法查看"已分析";红移表中的值?在Teradata中,help stats命令提供了这些。我想知道在红移中是否有一个等效的。

是的,你可以,通过一些工作。首先,请记住,Redshift将数据存储在1MB的块中,这些块分布在集群(片)中。因此,ANALYZE创建的元数据提供了关于这些块及其包含内容的信息。

表stv_blocklist包含关于块内容的信息。它包含了许多关于块的信息片段,但最有可能感兴趣的片段是minvalue和maxvalue(以及表id、slice和column,以便您知道任何块属于数据库的哪个部分)。

Minvalue和maxvalue是bigint类型,所以如果它们对应的数据列也是bigint类型,那么这些值就完全有意义了。但是,如果列是文本或时间戳,则需要进行一些反向工程,以理解用于将这些列类型的值存储为bigint的散列。过去我对几乎所有的数据类型都这样做过,这并不难解决。如果内存不够用,文本值有一些尾端技巧,但也不是很难解决,因为您可以看到输入值和输出值。使用这个解码器环,您可以评估排序键在加速查询方面的有效性。

相关内容

  • 没有找到相关文章

最新更新