CREATE INTERACTIVE WAREHOUSE
CREATE INTERACTIVE WAREHOUSE
인터랙티브 테이블(interactive table)로 저지연·고동시성 워크로드에 최적화된 새 인터랙티브 가상 웨어하우스를 만드는 명령이에요.
출처: 문서
본문
인터랙티브 테이블로 저지연·고동시성 워크로드에 최적화된 새 인터랙티브 가상 웨어하우스를 만들어요.
인터랙티브 웨어하우스는 지능형 캐싱과 최적화를 통해 자주 접근하는 데이터에 빠른 쿼리 응답을 제공하는 인터랙티브 테이블과 작업할 때 최적의 쿼리 성능을 전달하도록 설계됐어요.
함께 보기: CREATE WAREHOUSE, ALTER WAREHOUSE, DESCRIBE WAREHOUSE, DROP WAREHOUSE, SHOW WAREHOUSES, SHOW INTERACTIVE TABLES, CREATE INTERACTIVE TABLE
구문 (Syntax)
CREATE [ OR REPLACE ] INTERACTIVE WAREHOUSE [ IF NOT EXISTS ] <name>
[ TABLES ( <table_name> [ , <table_name> ... ] ) ]
[ [ WITH ] objectProperties ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ objectParams ]
여기서:
objectProperties ::=
WAREHOUSE_SIZE = { XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE }
MAX_CLUSTER_COUNT = <num>
MIN_CLUSTER_COUNT = <num>
AUTO_SUSPEND = { <num> | NULL }
AUTO_RESUME = { TRUE | FALSE }
INITIALLY_SUSPENDED = { TRUE | FALSE }
RESOURCE_MONITOR = <monitor_name>
COMMENT = '<string_literal>'
objectParams ::=
MAX_CONCURRENCY_LEVEL = <num>
STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = <num>
STATEMENT_TIMEOUT_IN_SECONDS = <num>
매개변수 (Parameters)
name
인터랙티브 웨어하우스의 식별자를 지정해요. 식별자는 계정 안에서 고유해야 해요.
자세한 내용은 식별자 요구 사항(Identifier requirements)을 참고해요.
TABLES ( ... )
선택 사항. 인터랙티브 웨어하우스에 즉시 연결할 인터랙티브 테이블 이름의 쉼표로 구분된 목록을 지정해요. 이 절을 사용하면 웨어하우스가 만들어질 때 지정된 테이블에 대한 캐시 워밍(cache-warming) 프로세스가 시작돼요.
table_name
웨어하우스에 연결할 인터랙티브 테이블의 식별자를 지정해요. 쉼표로 구분해 여러 테이블 이름을 지정할 수 있어요.
참고: 지정된 모든 테이블은
INTERACTIVE키워드로 만든 인터랙티브 테이블이어야 해요.이 절을 생략하면 나중에
ADD TABLES절로 ALTER WAREHOUSE를 사용해 인터랙티브 테이블을 연결할 수 있어요.캐시 워밍은 데이터 크기에 따라 상당한 시간이 걸릴 수 있어요.
WAREHOUSE_SIZE = string_constant
인터랙티브 웨어하우스의 크기를 지정해요. 인터랙티브 웨어하우스는 인터랙티브 워크로드에 최적화된 특정 크기를 지원해요.
유효한 값:
-
XSMALL,'X-SMALL' -
SMALL -
MEDIUM -
LARGE -
XLARGE,'X-LARGE' -
XXLARGE,X2LARGE,'2X-LARGE' -
XXXLARGE,X3LARGE,'3X-LARGE' -
X4LARGE,'4X-LARGE' -
기본값:
XSMALL
참고: 하이픈이 포함된 값(예:
'2X-LARGE')을 사용하려면 표시된 대로 값을 작은따옴표로 감싸야 해요.
워크로드 요구 사항에 맞는 웨어하우스 크기를 선택해요. 동시성에 맞게 MIN_CLUSTER_COUNT와 MAX_CLUSTER_COUNT 속성을 조정할 수 있어요.
MAX_CLUSTER_COUNT = num
멀티 클러스터 인터랙티브 웨어하우스의 최대 클러스터 수를 지정해요.
- 유효한 값:
1~10(웨어하우스 크기에 따라 다름) - 기본값:
1(단일 클러스터 웨어하우스)
MIN_CLUSTER_COUNT = num
멀티 클러스터 인터랙티브 웨어하우스의 최소 클러스터 수를 지정해요.
- 유효한 값:
1~ MAX_CLUSTER_COUNT 값 - 기본값:
1
AUTO_SUSPEND = { num | NULL }
인터랙티브 웨어하우스가 자동으로 일시 중지되는 비활동 시간(초)을 지정해요.
- 인터랙티브 웨어하우스의 최소값은
86400(24시간)이에요. 86400보다 작은 값을 지정하면 Snowflake가 86400을 사용해요. 값을NULL로 설정하면 자동 일시 중지가 비활성화돼요. - 기본값:
NULL(자동 일시 중지 비활성화)
AUTO_RESUME = { TRUE | FALSE }
SQL 문이 제출될 때 인터랙티브 웨어하우스를 자동으로 재개할지 지정해요.
- 기본값:
FALSE
INITIALLY_SUSPENDED = { TRUE | FALSE }
인터랙티브 웨어하우스가 일시 중지 상태로 만들어지는지 지정해요.
- 기본값:
FALSE
RESOURCE_MONITOR = monitor_name
크레딧 사용량 제어를 위해 인터랙티브 웨어하우스에 할당할 리소스 모니터의 식별자를 지정해요.
- 유효한 값: 기존 리소스 모니터
- 기본값: 값 없음 (리소스 모니터 할당 안 됨)
COMMENT = 'string_literal'
인터랙티브 웨어하우스에 대한 설명(comment)을 지정해요.
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )
태그 이름과 태그 문자열 값을 지정해요.
태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256이에요.
문에서 태그를 지정하는 방법에 대한 정보는 태그 할당량(Tag quotas)을 참고해요.
MAX_CONCURRENCY_LEVEL = num
인터랙티브 웨어하우스 클러스터가 실행하는 SQL 문의 동시성 수준을 지정해요.
STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = num
SQL 문이 취소되기 전에 큐에 있을 수 있는 시간(초)을 지정해요.
STATEMENT_TIMEOUT_IN_SECONDS = num
실행 중인 SQL 문이 취소되는 시간(초)을 지정해요.
인터랙티브 웨어하우스는 최대 5초의 타임아웃 간격을 가져요. 5초보다 큰 값을 지정하면 Snowflake가 타임아웃을 5초로 상한 처리해요.
예를 들어 STATEMENT_TIMEOUT_IN_SECONDS = 30으로 설정하면 Snowflake는 5 값을 사용해요.
접근 제어 요구 사항 (Access control requirements)
이 SQL 명령을 실행하는 역할(role)은 최소한 다음 권한 중 하나를 가져야 해요.
| 권한 (Privilege) | 객체 (Object) | 비고 |
|---|---|---|
| CREATE WAREHOUSE | Account | 인터랙티브 웨어하우스를 포함한 모든 웨어하우스를 만드는 데 필요해요. |
| USAGE | Interactive Table | 사용하는 경우 TABLES 절에 지정된 각 인터랙티브 테이블에 필요해요. |
지정된 권한 집합으로 사용자 지정 역할을 만드는 방법은 사용자 지정 역할 만들기(Creating custom roles)를 참고해요. 보호 가능한 객체에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여의 일반적인 내용은 접근 제어 개요(Overview of Access Control)를 참고해요.
사용 메모 (Usage notes)
OR REPLACE와 IF NOT EXISTS 절은 서로 배타적이에요. 같은 문에서 둘 다 사용할 수 없어요.
CREATE OR REPLACE <object> 문은 원자적(atomic)으로 동작해요. 즉, 객체를 교체할 때 기존 객체는 삭제되고 새 객체는 단일 트랜잭션 안에서 생성돼요.
인터랙티브 웨어하우스는 기본적으로 실행(running) 상태로 만들어져요. 일시 중지 상태로 웨어하우스를 만들려면 INITIALLY_SUSPENDED = TRUE로 설정해요.
TABLES 절을 지정하면 지정된 인터랙티브 테이블에 대한 캐시 워밍이 즉시 시작돼요. 이 프로세스는 데이터 크기에 따라 상당한 시간이 걸릴 수 있어요.
인터랙티브 웨어하우스는 데이터를 복사하거나 변환하지 않고 모든 테이블 유형(표준 테이블, Iceberg 테이블, 동적 테이블, 인터랙티브 테이블)을 직접 쿼리할 수 있어요. 자세한 내용은 ...을 참고해요.
인터랙티브 웨어하우스는 자동 일시 중지와 자동 재개를 지원해요. 최소 AUTO_SUSPEND 값은 86400초(24시간)예요. 자세한 내용은 인터랙티브 웨어하우스 재개와 일시 중지(Resuming and suspending an interactive warehouse)를 참고해요.
인터랙티브 웨어하우스는 고동시성 워크로드 처리를 위한 멀티 클러스터 구성을 지원해요.
생성 중에 TABLES 절을 지정하지 않으면 나중에 ADD TABLES 절로 ALTER WAREHOUSE를 사용해 인터랙티브 테이블을 연결할 수 있어요.
메타데이터에 관해서는 다음 사항에 주의해요.
⚠️ 주의: 고객은 Snowflake 서비스를 사용할 때 (User 객체를 제외하고) 개인 데이터·민감 데이터·수출 통제 데이터·기타 규제 데이터를 메타데이터로 입력하지 않도록 해야 해요. 자세한 내용은 Snowflake의 메타데이터 필드를 참고해요.
청구와 가격 (Billing and pricing)
인터랙티브 웨어하우스의 청구와 가격 고려 사항에 대한 정보는 비용과 청구 고려 사항(Cost and billing considerations)을 참고해요.
예시 (Examples)
특정 인터랙티브 테이블과 연결된 인터랙티브 웨어하우스를 만들어요.
CREATE OR REPLACE INTERACTIVE WAREHOUSE sales_interactive_wh
TABLES (orders, customers, products)
WAREHOUSE_SIZE = 'MEDIUM'
COMMENT = 'Interactive warehouse for sales team analytics';
연결된 테이블 없이 인터랙티브 웨어하우스를 만들어요. (나중에 추가)
CREATE INTERACTIVE WAREHOUSE analytics_interactive_wh
WAREHOUSE_SIZE = 'LARGE'
MAX_CLUSTER_COUNT = 3
MIN_CLUSTER_COUNT = 3;
리소스 모니터링이 있는 인터랙티브 웨어하우스를 만들어요.
CREATE INTERACTIVE WAREHOUSE dev_interactive_wh
WAREHOUSE_SIZE = 'XSMALL'
RESOURCE_MONITOR = dev_resource_monitor
COMMENT = 'Development interactive warehouse';
인터랙티브 웨어하우스를 재개하고 테이블을 연결해요.
-- Resume the warehouse
ALTER WAREHOUSE sales_interactive_wh RESUME;
-- Add additional tables if needed
ALTER WAREHOUSE sales_interactive_wh ADD TABLES (inventory);
더 알아보기 (Learn more)
- CREATE WAREHOUSE — 웨어하우스 생성
- CREATE INTERACTIVE TABLE — 인터랙티브 테이블 생성
- ALTER WAREHOUSE — 웨어하우스 수정
- SHOW WAREHOUSES — 웨어하우스 조회