SHOW EXTERNAL TABLES

SHOW EXTERNAL TABLES

SHOW EXTERNAL TABLES 명령은 접근 권한(privilege)이 있는 외부 테이블(external table) 목록을 보여주는 명령이에요. 현재/지정한 데이터베이스·스키마 또는 계정 전체의 외부 테이블을 나열할 수 있어요.

출처: 문서

본문

이 명령은 접근 권한이 있는 외부 테이블을 나열해요. 출력은 데이터베이스, 스키마, 외부 테이블 이름 기준 사전 순으로 정렬된 외부 테이블 메타데이터와 속성을 반환해요.

관련 명령: CREATE EXTERNAL TABLE, DROP EXTERNAL TABLE, ALTER EXTERNAL TABLE, DESCRIBE EXTERNAL TABLE.

구문 (Syntax)

SHOW [ TERSE ] EXTERNAL TABLES [ LIKE '<pattern>' ]
                               [ IN
                                        {
                                          ACCOUNT                                         |

                                          DATABASE                                        |
                                          DATABASE <database_name>                        |

                                          SCHEMA                                          |
                                          SCHEMA <schema_name>                            |
                                          <schema_name>

                                          APPLICATION <application_name>                  |
                                          APPLICATION PACKAGE <application_package_name>  |
                                        }
                               ]
                               [ STARTS WITH '<name_string>' ]
                               [ LIMIT <rows> [ FROM '<name_string>' ] ]

파라미터 (Parameters)

  • TERSE — 출력 컬럼의 일부만 선택적으로 반환해요: created_on, name, kind, database_name, schema_name. 기본값: 없음.

  • LIKE <pattern> — 명령 출력을 객체 이름으로 필터링해요. 대소문자를 구분하지 않는 패턴 매칭이며 SQL 와일드카드 문자(%_)를 지원해요. 기본값: 없음.

  • [ IN ... ] — 명령의 범위를 선택적으로 지정해요:

    • ACCOUNT — 전체 계정의 레코드 반환.
    • DATABASE 또는 DATABASE db_name — 현재 또는 지정한 데이터베이스의 레코드 반환.
    • SCHEMA 또는 SCHEMA schema_name — 현재 또는 지정한 스키마의 레코드 반환.
    • APPLICATION <application_name> — 지정한 Snowflake Native App의 레코드 반환.
    • APPLICATION PACKAGE <application_package_name> — 지정한 애플리케이션 패키지의 레코드 반환.
    • IN ...을 생략하면 범위는 세션의 현재 데이터베이스 유무에 따라 달라져요: 있으면 IN DATABASE와 같은 효과, 없으면 IN ACCOUNT와 같은 효과.
  • STARTS WITH <name_string> — 객체 이름의 시작 문자를 기준으로 출력을 필터링해요. 문자열은 작은따옴표로 묶어야 하며 대소문자를 구분해요.

  • LIMIT <rows> [ FROM <name_string> ] — 최대 행 수를 제한하면서 결과의 "페이지네이션"을 가능하게 해요. FROM '<name_string>' 하위 절은 결과의 "커서" 역할을 해요. 문자열은 작은따옴표로 묶어야 하며 대소문자를 구분하고, 부분 이름이 지원돼요.

    참고: STARTS WITHFROM 절을 모두 지원하는 SHOW 명령에서는 두 절을 같은 문장에서 결합할 수 있어요. 다만 두 조건이 모두 충족되어야 하며, 그렇지 않으면 서로 상쇄되어 결과가 반환되지 않아요. 객체는 이름 기준 사전 순으로 반환됩니다.

출력 (Output)

명령 출력은 외부 테이블 속성과 메타데이터를 다음 컬럼으로 제공해요:

  • created_on — 외부 테이블이 생성된 날짜·시간.
  • name — 외부 테이블 이름.
  • database_name — 외부 테이블 스키마의 데이터베이스.
  • schema_name — 외부 테이블의 스키마.
  • invalid — 외부 테이블 설명에서 참조하는 스테이지(stage)나 파일 형식이 삭제되었으면 TRUE.
  • invalid_reason — INVALID 컬럼이 TRUE를 표시할 때 외부 테이블이 무효인 이유.
  • owner — 외부 테이블을 소유한 역할.
  • comment — 외부 테이블에 대한 주석.
  • stage — 외부 테이블 정의에서 참조하는 스테이지의 완전 정규화된 이름.
  • location — 외부 테이블 정의의 외부 스테이지 및 폴더 경로. 데이터 소비자 계정의 가져온 공유에 있는 외부 테이블은 NULL.
  • file_format_name — 외부 테이블 정의의 명명된 파일 형식. 스테이지 정의에 지정된 파일 형식은 표시하지 않아요.
  • file_format_type — 외부 테이블 정의에 지정된 파일 형식 유형. 스테이지 정의에 지정된 파일 형식 유형은 표시하지 않아요.
  • cloud — 스테이징된 데이터 파일이 있는 클라우드.
  • region — 스테이징된 데이터 파일이 있는 리전.
  • notification_channel — 외부 테이블의 Amazon SQS 큐의 Amazon 리소스 이름(ARN).
  • last_refreshed_on — 외부 테이블의 메타데이터가 외부 스테이지·경로의 최신 파일 집합과 마지막으로 동기화된 시점을 나타내는 타임스탬프 (수동 또는 자동).
  • table_format — 외부 테이블이 참조하는 스테이징된 파일의 테이블 형식. 가능한 값: DELTA, UNSPECIFIED.
  • last_refresh_details — 향후 기능을 지원함. 현재는 NULL만.
  • owner_role_type — 객체를 소유한 역할 유형(예: ROLE). Snowflake Native App이 객체를 소유하면 APPLICATION. 객체가 삭제되면 NULL.

외부 테이블에 대해 지정할 수 있는 속성에 대한 자세한 내용은 CREATE EXTERNAL TABLE을 참고해요.

사용 참고 사항 (Usage notes)

  • 이 명령은 삭제된 외부 테이블을 나열하지 않아요.
  • 실행에 실행 중인 웨어하우스를 요구하지 않아요.
  • 현재 역할에 하나 이상의 접근 권한이 부여된 객체만 반환해요.
  • MANAGE GRANTS 권한은 보유자가 계정의 모든 객체를 볼 수 있게 해줘요. 기본적으로 ACCOUNTADMIN과 SECURITYADMIN 역할만 이 권한을 가져요.
  • 출력을 후처리하려면 파이프 연산자(|>) 또는 RESULT_SCAN 함수를 사용할 수 있어요. 출력 컬럼을 참조할 때는 컬럼 이름을 큰따옴표로 감싸서 사용해요.
  • LIMIT rows의 값은 10000을 초과할 수 없어요. LIMIT rows를 생략하면 결과 집합이 1만 행보다 크면 오류가 발생해요.

예제 (Examples)

tpch.public 스키마에서 볼 권한이 있고 이름이 line으로 시작하는 모든 외부 테이블을 표시해요:

SHOW EXTERNAL TABLES LIKE 'line%' IN tpch.public;

더 알아보기 (Learn more)