2016-08-17 4 views
0

Redshift에서 sortkey의 일부인 모든 열을 가져와야합니다.Redshift에서 sortkey의 일부인 모든 열을 얻는 방법

"select * from svv_table_info"를 사용하여 정보를 얻으려고했지만 하나의 열에 대한 정보 만 있습니다. 나에게 알려 주실 수 있습니다. 어떻게 테이블에 대한 Sortkey의 일부인 모든 열을 가져 옵니까?

감사합니다, 무엇에 대해 산지 브

답변

0

:

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

모두 도와 주셔서 감사 산지 브를

검색 경로에서 "사용하여 newSchema"를 추가 한 후 나는 sortkey 볼 수 있으며 pg_table_def에서이 스키마 distkey 정보를 제공합니다. 나는 이미 pg_table_def 테이블을 사용하여 sortkey와 distkey 정보를 얻었지만 pg_catalog와 Public 스키마를 보았습니다. 아마존 개발자 가이드를 살펴보고 아래 명령을 사용하여 검색 경로에 스키마를 추가해야한다는 것을 알았습니다. – Sanjeev

2

산지 브,

테이블이라고 pg_table_def이 열에 대한 정보가 있습니다.

아래 예제에서는 4 개의 열이있는 간단한 테이블을 만들고이 열 중 2 개를 내 정렬 키로 사용했습니다.

내 쿼리 결과에서 알 수 있듯이 "정렬 키"필드는 열이 정렬 키의 일부인 경우 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) 
0

귀하의 도움에 감사드립니다. 이미 "pg_table_def"테이블을 사용하여 sortkey와 distkey 정보를 얻으려고했지만 pg_catalog와 Public 스키마 만 보았습니다. 아마존 개발자 가이드를 통해 아래 명령을 사용하여 검색 경로에 스키마를 추가해야합니다. - show search_path; '$ user', 'public', 'NewSchema'에 대해 search_path를 설정하십시오.

감사합니다,

관련 문제