ALTER SEMANTIC VIEW
ALTER SEMANTIC VIEW
기존 시맨틱 뷰(semantic view)의 속성, 구체화(materialization) 또는 기타 설정을 수정하는 명령이에요.
출처: 문서
본문
참고: ALTER SEMANTIC VIEW 명령으로는 주석 외의 속성을 변경할 수 없어요. 시맨틱 뷰의 다른 속성을 변경하려면 CREATE OR ALTER SEMANTIC VIEW를 사용하거나 시맨틱 뷰를 교체해요. 기존 시맨틱 뷰 교체를 참고하세요.
관련 명령: CREATE SEMANTIC VIEW, DESCRIBE SEMANTIC VIEW, DROP SEMANTIC VIEW, SHOW SEMANTIC VIEWS, SHOW SEMANTIC DIMENSIONS, SHOW SEMANTIC DIMENSIONS FOR METRIC, SHOW SEMANTIC FACTS, SHOW SEMANTIC METRICS
CREATE OR ALTER <object>, 시맨틱 뷰에서 차원과 메트릭 구체화
구문 (Syntax)
ALTER SEMANTIC VIEW [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER SEMANTIC VIEW [ IF EXISTS ] <name> SET
{ COMMENT = '<string_literal>' | MAX_STALENESS = <integer> }
ALTER SEMANTIC VIEW [ IF EXISTS ] <name> UNSET
{ COMMENT | MAX_STALENESS }
ALTER SEMANTIC VIEW <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER SEMANTIC VIEW <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
ALTER SEMANTIC VIEW <name> ADD MATERIALIZATION <materialization_name>
WAREHOUSE = <warehouse_name>
[ REFRESH_MODE = { AUTO | FULL | INCREMENTAL } ]
[ IMMUTABLE WHERE ( <immutable_condition> ) ]
AS
DIMENSIONS <dimension_name> [ , ... ]
METRICS <metric_name> [ , ... ]
[ WHERE ( <filter_condition> ) ]
ALTER SEMANTIC VIEW <name> DROP MATERIALIZATION <materialization_name>
ALTER SEMANTIC VIEW <name> SUSPEND MATERIALIZATION <materialization_name>
ALTER SEMANTIC VIEW <name> RESUME MATERIALIZATION <materialization_name>
ALTER SEMANTIC VIEW <name> REFRESH MATERIALIZATION <materialization_name>
참고: ALTER SEMANTIC VIEW는 시맨틱 뷰 수준에서만 태그 설정/해제를 지원해요. 시맨틱 뷰 안의 논리 테이블, 차원, 팩트 또는 메트릭에 태그를 설정하려면 CREATE SEMANTIC VIEW 명령을 사용해요.
매개변수 (Parameters)
name — 수정할 시맨틱 뷰의 식별자를 지정해요.
식별자에 공백이나 특수 문자가 포함되어 있으면 전체 문자열을 큰따옴표로 묶어야 해요. 큰따옴표로 묶은 식별자는 대소문자를 구분해요. 자세한 내용은 식별자 요구사항을 참고하세요.
RENAME TO new_name — 시맨틱 뷰의 이름을 new_name으로 변경해요. 새 식별자는 스키마 안에서 고유해야 해요. 식별자에 대한 자세한 내용은 식별자 요구사항을 참고하세요.
객체의 이름을 바꾸면서 다른 데이터베이스 및/또는 스키마로 이동할 수 있어요. 그러려면 db_name.schema_name.object_name 또는 schema_name.object_name 형식으로 새 위치가 포함된 정규화된 new_name 값을 지정해요.
참고
- 대상 데이터베이스 및/또는 스키마는 이미 존재해야 해요. 새 위치에 같은 이름의 객체가 이미 있으면 문이 오류를 반환해요.
- 객체 소유자(즉 객체에 OWNERSHIP 권한이 있는 역할)가 대상 스키마도 소유하지 않는 한, 관리형 접근 스키마로의 이동은 금지돼요.
객체 이름을 바꾸면, 그 객체를 참조하는 다른 객체도 새 이름으로 업데이트해야 해요.
SET ... — 시맨틱 뷰에 대해 하나 이상의 지정된 속성이나 매개변수를 설정해요:
COMMENT = 'string_literal' — 시맨틱 뷰의 주석을 추가하거나 기존 주석을 덮어써요.
MAX_STALENESS = integer — 구체화가 staleness(오래됨) 상태로 유지될 수 있는 최대 시간(초)을 설정해요. 초과하면 Snowflake가 자동으로 구체화를 중지해요. 구체화를 추가하려면 먼저 설정해야 해요.
최소값: 120 (2분). 시맨틱 뷰에 구체화가 존재하는 동안에는 MAX_STALENESS를 해제할 수 없어요.
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] — 태그 이름과 태그 문자열 값을 지정해요.
태그 값은 항상 문자열이며, 최대 문자 수는 256이에요. 문에서 태그를 지정하는 방법은 태그 할당량을 참고하세요.
UNSET ... — 시맨틱 뷰의 하나 이상의 지정된 속성이나 매개변수를 해제해 기본값으로 되돌려요:
COMMENTMAX_STALENESS— 시맨틱 뷰에 구체화가 없을 때만 해제할 수 있어요.TAG tag_name [ , tag_name ... ]
하나의 ALTER 문으로 여러 속성이나 매개변수를 해제하려면 각 속성이나 매개변수를 콤마로 구분해요. 속성이나 매개변수를 해제할 때는 이름만 지정해요(위 구문이 값을 지정하라고 나타내지 않는 한). 값을 지정하면 오류가 반환돼요.
ADD MATERIALIZATION materialization_name — 지정된 차원과 메트릭을 사전 집계하는 시맨틱 뷰의 구체화를 만들거나 교체해요. 같은 이름의 구체화가 이미 있으면 업데이트돼요.
WAREHOUSE = warehouse_name — 구체화를 새로고침하는 데 사용되는 웨어하우스예요.
REFRESH_MODE = { AUTO | FULL | INCREMENTAL } — 새로고침 전략을 제어해요. AUTO(기본값)는 가능하면 증분 새로고침을 사용하고, 가산적이지 않은 메트릭에는 전체 새로고침으로 폴백해요. FULL은 항상 모든 데이터를 다시 계산해요. INCREMENTAL은 항상 증분 새로고침을 사용하며 메트릭이 이를 지원하지 않으면 실패해요.
IMMUTABLE WHERE ( immutable_condition ) — 시간이 지나도 변하지 않는 행을 식별하는 선택적 조건이에요. Snowflake는 증분 새로고침 중에 이 행들을 건너뛰어 새로고침 비용과 시간을 줄여요. 정규화되지 않은 열 이름을 사용해요(예: orders.order_year가 아니라 order_year).
DIMENSIONS dimension_name [ , ... ] — 구체화에 포함할 차원이에요.
METRICS metric_name [ , ... ] — 구체화에서 사전 집계할 메트릭이에요.
WHERE ( filter_condition ) — 구체화가 저장하는 행을 제한하는 선택적 필터예요. 호환 가능한 WHERE 절을 포함한 쿼리는 구체화를 사용하도록 다시 작성될 수 있어요. 이는 IMMUTABLE WHERE와 다르며, WHERE는 어떤 행을 저장할지 제어하고, IMMUTABLE WHERE는 새로고침 최적화 힌트예요.
DROP MATERIALIZATION materialization_name — 시맨틱 뷰에서 구체화를 제거해요. 시맨틱 뷰 자체는 영향을 받지 않아요.
SUSPEND MATERIALIZATION materialization_name — 구체화의 백그라운드 새로고침을 일시 중지하고 쿼리 재작성에 사용되지 않도록 해요.
RESUME MATERIALIZATION materialization_name — 일시 중지된 구체화를 재개해 백그라운드 새로고침과 쿼리 재작성을 다시 활성화해요.
REFRESH MATERIALIZATION materialization_name — 현재 세션 웨어하우스를 사용해 구체화의 즉시 새로고침을 트리거해요.
접근 제어 요구사항 (Access control requirements)
이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 보유해야 해요: GRANT OWNERSHIP
| 권한 | 객체 | 설명 |
|---|---|---|
| OWNERSHIP | Semantic view | OWNERSHIP은 객체를 만든 역할에 자동으로 부여되는 객체의 특별한 권한이에요. 소유 역할(또는 MANAGE GRANTS 권한이 있는 역할)이 GRANT OWNERSHIP 명령으로 다른 역할에 이전할 수도 있어요. |
| USAGE | Warehouse | 구체화를 추가하거나 새로고침하려면 필요해요(ADD MATERIALIZATION, REFRESH MATERIALIZATION). |
스키마의 객체를 조작하려면 상위 데이터베이스와 상위 스키마 각각에 대해 하나 이상의 권한이 필요해요.
지정한 권한 집합을 가진 사용자 정의 역할을 만드는 방법은 사용자 정의 역할 만들기를 참고하세요.
보호 객체에서 SQL 작업을 수행할 때 역할과 권한 부여에 대한 일반 정보는 접근 제어 개요를 참고하세요.
사용 메모 (Usage notes)
- 메타데이터 관련: Snowflake 서비스를 사용할 때 메타데이터로 개인 데이터(User 객체 외), 민감한 데이터, 수출 통제 데이터 또는 기타 규제 대상 데이터를 입력하지 않도록 주의해야 해요. 자세한 내용은 Snowflake의 메타데이터 필드를 참고하세요.
- 시맨틱 뷰에 구체화를 추가하기 전에
MAX_STALENESS를 설정해야 해요. - 구체화가 존재하는 동안에는
MAX_STALENESS를 해제할 수 없어요. 먼저 모든 구체화를 삭제해요. CREATE OR REPLACE SEMANTIC VIEW로 시맨틱 뷰를 변경하면 모든 구체화가 삭제돼요. 시맨틱 뷰 변경 전반에 걸쳐 구체화를 유지하려면CREATE OR ALTER SEMANTIC VIEW를 사용해요.
예시 (Examples)
다음 예시는 시맨틱 뷰의 이름을 바꿔요.
ALTER SEMANTIC VIEW sv RENAME TO sv_new_name;
다음 예시는 시맨틱 뷰의 주석을 설정해요.
ALTER SEMANTIC VIEW my_semantic_view SET COMMENT = 'my comment';
다음 예시는 시맨틱 뷰의 기존 주석을 해제해요.
ALTER SEMANTIC VIEW my_semantic_view UNSET COMMENT;
다음 예시는 구체화의 최대 staleness를 2시간(7200초)으로 설정해요.
ALTER SEMANTIC VIEW revenue_analysis SET MAX_STALENESS = 7200;
다음 예시는 구체화를 추가해요.
ALTER SEMANTIC VIEW revenue_analysis ADD MATERIALIZATION revenue_by_customer
WAREHOUSE = my_wh
IMMUTABLE WHERE (order_date < '2024-01-01')
AS
DIMENSIONS customers.customer_name
METRICS orders.total_revenue;
다음 예시는 구체화를 일시 중지한 뒤 재개해요.
ALTER SEMANTIC VIEW revenue_analysis SUSPEND MATERIALIZATION revenue_by_customer;
ALTER SEMANTIC VIEW revenue_analysis RESUME MATERIALIZATION revenue_by_customer;
다음 예시는 구체화를 수동으로 새로고침해요.
ALTER SEMANTIC VIEW revenue_analysis REFRESH MATERIALIZATION revenue_by_customer;
다음 예시는 구체화를 삭제해요.
ALTER SEMANTIC VIEW revenue_analysis DROP MATERIALIZATION revenue_by_customer;
더 알아보기 (Learn more)
- CREATE SEMANTIC VIEW — 시맨틱 뷰 만들기
- DESCRIBE SEMANTIC VIEW — 시맨틱 뷰 설명
- SHOW SEMANTIC VIEWS — 시맨틱 뷰 나열
- DROP SEMANTIC VIEW — 시맨틱 뷰 삭제