我们如何获得Redshift中作为sortkey一部分的所有列

时间:2016-08-17 14:35:36

标签: amazon-redshift

我需要获取所有列,这是Redshift中sortkey的一部分。

我尝试使用“select * from svv_table_info”获取信息,但它只有一列的信息。你能告诉我吗,我如何获得表格中Sortkey一部分的所有列。

谢谢, Sanjeev

3 个答案:

答案 0 :(得分:2)

Sanjeev,

一个名为pg_table_def的表包含有关列的信息。

在下面的示例中,我创建了一个包含四列的简单表,并使用其中两列作为我的排序键。

正如您在查询结果中看到的那样,如果列是排序键的一部分,则“排序键”字段会显示0以外的数字。

dev=# drop table tb1;
DROP TABLE
dev=# create table tb1 (col1 integer, col2 integer, col3 integer, col4 integer) distkey(col1) sortkey(col2, col4);
CREATE TABLE
dev=# select * from pg_table_def where tablename = 'tb1';
 schemaname | tablename | column |  type   | encoding | distkey | sortkey | notnull 
------------+-----------+--------+---------+----------+---------+---------+---------
 public     | tb1       | col1   | integer | none     | t       |       0 | f
 public     | tb1       | col2   | integer | none     | f       |       1 | f
 public     | tb1       | col3   | integer | none     | f       |       0 | f
 public     | tb1       | col4   | integer | none     | f       |       2 | f
(4 rows)

答案 1 :(得分:0)

怎么样:

select "column", type, encoding, distkey, sortkey, "notnull" 
from pg_table_def
where tablename = 'YOURTABLE' 
and sortkey <> 0;

答案 2 :(得分:0)

感谢大家的帮助。我已经尝试了#34; pg_table_def&#34;表获取sortkey和distkey信息,但我只看到了pg_catalog和Public模式,我只是通过亚马逊开发人员指南,发现我们需要使用以下命令将模式添加到搜索路径: - show search_path; 将search_path设置为&#39; $ user&#39;,&#39; public&#39;,&#39; NewSchema&#39;;

添加&#34; NewSchema&#34;在搜索路径中,我可以在pg_table_def

中看到此模式的sortkey和distkey信息

谢谢, Sanjeev