카탈로그 테이블 쿼리
일반적으로 카탈로그 테이블과 뷰(이름이 PG_
로 시작하는 릴레이션)는 Amazon Redshift 테이블과 뷰로 조인할 수 있습니다.
카탈로그 테이블은 Amazon Redshift가 지원하지 않는 데이터 형식을 다수 사용합니다. 다음은 쿼리가 카탈로그 테이블을 Amazon Redshift 테이블로 조인할 때 지원되는 데이터 형식입니다.
-
bool
-
"char"
-
"char"
-
"char"
-
"char"
-
"char"
-
name
-
oid
-
텍스트
-
varchar
조인 쿼리를 작성하면서 지원되지 않는 데이터 형식이 포함된 열을 명시적으로, 또는 묵시적으로 참조하는 경우에는 쿼리가 오류를 반환합니다. PG_SETTINGS 및 PG_LOCKS 테이블에서 사용하는 함수를 제외하고 일부 카탈로그 테이블에서 사용되는 SQL 함수 역시 지원되지 않습니다.
예를 들어 PG_STATS 테이블은 Amazon Redshift 테이블과 조인할 때 지원되지 않는 함수로 인해 쿼리를 실행할 수 없습니다.
다음 카탈로그 테이블과 뷰는 Amazon Redshift 테이블의 정보로 조인할 수 있는 유용한 정보를 제공합니다. 단, 일부 테이블은 데이터 형식 및 함수 제한으로 인해 부분적 액세스만 허용됩니다. 부분적 액세스만 허용되는 테이블에 대해 쿼리를 실행할 때는 주의하여 열을 선택하거나 참조하십시오.
다음 테이블은 완전 액세스가 가능하여 지원되지 않는 형식이나 함수가 전혀 없습니다.
다음 테이블은 부분적 액세스가 가능하여 지원되지 않는 형식이나 함수, 또는 잘린 텍스트 열이 포함됩니다. 텍스트 열의 값은 varchar(256) 값까지 잘립니다.
여기서 언급하지 않는 카탈로그 테이블은 액세스가 안 되거나, 혹은 Amazon Redshift 관리자가 사용하지 못할 가능성이 높습니다. 하지만 쿼리가 Amazon Redshift 테이블 조인과 관련이 없다면 모든 카탈로그 테이블 또는 뷰에 대해 공개적으로 쿼리를 실행할 수 있습니다.
Postgres 카탈로그 테이블에서는 OID 열을 조인 열로 사용할 수 있습니다. 예를 들어 조인 조건 pg_database.oid = stv_tbl_perm.db_id
에 따라 각 PG_DATABASE 행의 내부 데이터베이스 객체 ID는 STV_TBL_PERM 테이블에 공개되는 DB_ID 열과 일치합니다. OID 열은 테이블에서 선택 시 공개되지 않는 내부 기본 키입니다. 카탈로그 뷰에는 OID 열이 없습니다.
일부 Amazon Redshift 함수는 반드시 컴퓨팅 노드에서만 실행해야 합니다. 쿼리에서 사용자가 만든 테이블을 참조하는 경우, SQL은 컴퓨팅 노드에서 실행됩니다.
CATALOG 테이블(PG_TABLE_DEF처럼 PG 접두사가 첨부된 테이블)만 참조하거나 어떤 테이블도 참조하지 않는 쿼리는 리더 노드에서만 실행됩니다.
컴퓨팅 노드 함수를 사용하는 쿼리에서 사용자 정의 테이블이나 Amazon Redshift 시스템 테이블을 참조하지 않는 경우 다음 오류가 반환됩니다.
[Amazon](500310) Invalid operation: One or more of the used functions must be applied on at least one user created table.