SHOW INTERACTIVE TABLES
SHOW INTERACTIVE TABLES
SHOW INTERACTIVE TABLES 명령은 접근 권한(privilege)이 있는 인터랙티브 테이블(interactive table) 목록을 보여주는 명령이에요. 현재/지정한 데이터베이스·스키마 또는 계정 전체의 인터랙티브 테이블을 나열할 수 있어요.
출처: 문서
본문
이 명령은 접근 권한이 있는 인터랙티브 테이블을 나열해요. 인터랙티브 테이블은 대화형(interactive) 워크로드를 지원하는 테이블 유형으로, 이 명령으로 정의된 테이블들을 확인할 수 있어요.
기능 상태: 일반 공급(Generally Available). 이 기능은 일부 AWS, GCP, Microsoft Azure 리전에서만 일반 공급으로 제공돼요.
관련 명령: CREATE INTERACTIVE TABLE, ALTER TABLE, DROP TABLE, SHOW TABLES, SHOW DYNAMIC TABLES.
구문 (Syntax)
SHOW INTERACTIVE TABLES [ LIKE '<pattern>' ]
[ IN
{
ACCOUNT |
DATABASE |
DATABASE <db_name> |
SCHEMA |
SCHEMA <schema_name> |
<schema_name>
}
]
[ STARTS WITH '<name_string>' ]
[ LIMIT <rows> [ FROM '<name_string>' ] ]
파라미터 (Parameters)
-
LIKE
<pattern>— 명령 출력을 객체 이름으로 필터링해요. 대소문자를 구분하지 않는 패턴 매칭이며 SQL 와일드카드 문자(%와_)를 지원해요. 기본값: 없음. -
[ IN ... ] — 명령의 범위를 선택적으로 지정해요:
ACCOUNT— 전체 계정의 레코드 반환.DATABASE또는DATABASE db_name— 현재 또는 지정한 데이터베이스의 레코드 반환.SCHEMA또는SCHEMA schema_name— 현재 또는 지정한 스키마의 레코드 반환.IN ...을 생략하면 범위는 세션의 현재 데이터베이스 유무에 따라 달라져요: 있으면IN DATABASE와 같은 효과, 없으면IN ACCOUNT와 같은 효과.
-
STARTS WITH
<name_string>— 객체 이름의 시작 문자를 기준으로 출력을 필터링해요. 문자열은 작은따옴표로 묶어야 하며 대소문자를 구분해요. -
LIMIT
<rows>[ FROM<name_string>] — 최대 행 수를 제한하면서 결과의 "페이지네이션"을 가능하게 해요.FROM '<name_string>'하위 절은 결과의 "커서" 역할을 해요. 문자열은 작은따옴표로 묶어야 하며 대소문자를 구분하고, 부분 이름이 지원돼요.참고:
STARTS WITH와FROM절을 모두 지원하는 SHOW 명령에서는 두 절을 같은 문장에서 결합할 수 있어요. 다만 두 조건이 모두 충족되어야 하며, 그렇지 않으면 서로 상쇄되어 결과가 반환되지 않아요.
접근 제어 요구 사항 (Access control requirements)
이 작업을 실행하는 역할은 최소한 다음 권한을 가져야 해요:
| 권한 (Privilege) | 객체 (Object) | 비고 |
|---|---|---|
| SELECT | 나열하려는 인터랙티브 테이블 | 상위 데이터베이스·스키마에 USAGE만 가진 역할은 명령을 실행할 수 있지만 0행만 봐요. |
출력 (Output)
명령 출력은 인터랙티브 테이블 속성과 메타데이터를 다음 컬럼으로 제공해요:
- created_on — 인터랙티브 테이블이 생성된 날짜·시간.
- name — 인터랙티브 테이블 이름.
- database_name — 인터랙티브 테이블이 저장된 데이터베이스.
- schema_name — 인터랙티브 테이블이 저장된 스키마.
- cluster_by — 인터랙티브 테이블의 클러스터링 키 표현식(예:
(id)). - rows — 테이블의 행 수.
- bytes — 전체 인터랙티브 테이블을 쿼리에서 스캔하면 스캔될 바이트 수. 실제 디스크 저장 바이트와 다를 수 있어요.
- owner — 인터랙티브 테이블을 소유한 역할.
- target_lag — 동적 인터랙티브 테이블 콘텐츠가 실시간보다 뒤처질 수 있는 최대 시간. 정적 인터랙티브 테이블은 NULL.
- refresh_warehouse — 동적 인터랙티브 테이블의 새로고침에 사용되는 웨어하우스. 정적 인터랙티브 테이블은 NULL.
- comment — 인터랙티브 테이블에 대한 주석.
- text — 인터랙티브 테이블을 만든 명령의 텍스트. 동적 인터랙티브 테이블의 저장된 DDL은 내부적으로
DYNAMIC TABLE구문을 사용하므로, 권위 있는CREATE OR REPLACE INTERACTIVE TABLE문장을 얻으려면GET_DDL('table', '<name>')을 사용해요. 정적 인터랙티브 테이블은 NULL. - scheduling_state — 새로고침을 적극적으로 예약 중인 동적 인터랙티브 테이블은
ACTIVE, 일시 중단된 테이블은SUSPENDED. 정적 인터랙티브 테이블은 NULL. - owner_role_type — 객체를 소유한 역할 유형(예:
ROLE). Snowflake Native App이 객체를 소유하면APPLICATION. 객체가 삭제되면 NULL. - initialization_warehouse — 동적 인터랙티브 테이블의 초기 데이터 채우기에 사용되는 웨어하우스. 초기 채우기가 완료된 후에는 빈 문자열. 정적 인터랙티브 테이블은 NULL.
- last_completed_refresh_state — 동적 인터랙티브 테이블의 가장 최근 완료된 새로고침 주기 결과(예:
SUCCEEDED). 정적 인터랙티브 테이블은 NULL. - latest_data_timestamp — 동적 인터랙티브 테이블에 가장 최근 반영된 데이터의 타임스탬프. 정적 인터랙티브 테이블은 NULL.
사용 참고 사항 (Usage notes)
TARGET_LAG와WAREHOUSE로 만든 동적 인터랙티브 테이블은target_lag,refresh_warehouse,scheduling_state,last_completed_refresh_state,latest_data_timestamp컬럼에 NULL이 아닌 값을 반환해요.AS SELECT없이 만든 정적 인터랙티브 테이블은 해당 컬럼이 NULL을 반환해요.TARGET_LAG로 만든 일반 동적 테이블은 출력에 나타나지 않아요. 이를 나열하려면 SHOW DYNAMIC TABLES를 사용해요.- 동적 인터랙티브 테이블의 자동 새로고침을 일시 중단·재개하려면
ALTER INTERACTIVE TABLE ... SUSPEND또는ALTER INTERACTIVE TABLE ... RESUME을 사용해요. 이러한 작업은scheduling_state컬럼을 각각SUSPENDED또는ACTIVE로 갱신해요. 온디맨드 새로고침을 트리거하려면ALTER INTERACTIVE TABLE ... REFRESH를 사용해요. 이러한 작업은 정적 인터랙티브 테이블에서 지원되지 않아요. - 실행에 실행 중인 웨어하우스를 요구하지 않아요.
- 현재 역할에 하나 이상의 접근 권한이 부여된 객체만 반환해요.
MANAGE GRANTS권한은 보유자가 계정의 모든 객체를 볼 수 있게 해줘요. 기본적으로 ACCOUNTADMIN과 SECURITYADMIN 역할만 이 권한을 가져요.- 출력을 후처리하려면 파이프 연산자(
|>) 또는RESULT_SCAN함수를 사용할 수 있어요. 출력 컬럼을 참조할 때는 컬럼 이름을 큰따옴표로 감싸서 사용해요. LIMIT rows의 값은10000을 초과할 수 없어요.LIMIT rows를 생략하면 결과 집합이 1만 행보다 크면 오류가 발생해요.
예제 (Examples)
현재 스키마에서 이름이 product_로 시작하는 모든 인터랙티브 테이블을 표시해요:
SHOW INTERACTIVE TABLES LIKE 'product_%' IN SCHEMA mydb.myschema;
더 알아보기 (Learn more)
- CREATE INTERACTIVE TABLE — 인터랙티브 테이블 만들기
- ALTER TABLE — 테이블 수정
- SHOW DYNAMIC TABLES — 동적 테이블 목록 조회