Redshift에서 sortkey의 일부인 모든 열을 가져와야합니다.Redshift에서 sortkey의 일부인 모든 열을 얻는 방법
"select * from svv_table_info"를 사용하여 정보를 얻으려고했지만 하나의 열에 대한 정보 만 있습니다. 나에게 알려 주실 수 있습니다. 어떻게 테이블에 대한 Sortkey의 일부인 모든 열을 가져 옵니까?
감사합니다, 무엇에 대해 산지 브
Redshift에서 sortkey의 일부인 모든 열을 가져와야합니다.Redshift에서 sortkey의 일부인 모든 열을 얻는 방법
"select * from svv_table_info"를 사용하여 정보를 얻으려고했지만 하나의 열에 대한 정보 만 있습니다. 나에게 알려 주실 수 있습니다. 어떻게 테이블에 대한 Sortkey의 일부인 모든 열을 가져 옵니까?
감사합니다, 무엇에 대해 산지 브
:
select "column", type, encoding, distkey, sortkey, "notnull"
from pg_table_def
where tablename = 'YOURTABLE'
and sortkey <> 0;
산지 브,
테이블이라고 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)
귀하의 도움에 감사드립니다. 이미 "pg_table_def"테이블을 사용하여 sortkey와 distkey 정보를 얻으려고했지만 pg_catalog와 Public 스키마 만 보았습니다. 아마존 개발자 가이드를 통해 아래 명령을 사용하여 검색 경로에 스키마를 추가해야합니다. - show search_path; '$ user', 'public', 'NewSchema'에 대해 search_path를 설정하십시오.
감사합니다,
모두 도와 주셔서 감사 산지 브를
검색 경로에서 "사용하여 newSchema"를 추가 한 후 나는 sortkey 볼 수 있으며 pg_table_def에서이 스키마 distkey 정보를 제공합니다. 나는 이미 pg_table_def 테이블을 사용하여 sortkey와 distkey 정보를 얻었지만 pg_catalog와 Public 스키마를 보았습니다. 아마존 개발자 가이드를 살펴보고 아래 명령을 사용하여 검색 경로에 스키마를 추가해야한다는 것을 알았습니다. – Sanjeev