ALTER MATERIALIZED VIEW¶
현재/지정된 스키마에서 구체화된 뷰를 변경합니다. 다음과 같은 작업이 지원됩니다.
구체화된 뷰의 이름 바꾸기.
구체화된 뷰의 사용 및 유지 관리 일시 중단 및 다시 시작.
구체화된 뷰 클러스터링.
구체화된 뷰의 재클러스터링 일시 중단 및 다시 시작.
구체화된 뷰의 클러스터링 삭제.
자세한 내용은 구체화된 뷰 작업하기 섹션을 참조하십시오.
- 참고 항목:
CREATE MATERIALIZED VIEW , DROP MATERIALIZED VIEW , SHOW MATERIALIZED VIEWS , DESCRIBE MATERIALIZED VIEW
구문¶
ALTER MATERIALIZED VIEW <name>
{
RENAME TO <new_name> |
CLUSTER BY ( <expr1> [, <expr2> ... ] ) |
DROP CLUSTERING KEY |
SUSPEND RECLUSTER |
RESUME RECLUSTER |
SUSPEND |
RESUME |
SET {
[ SECURE ]
[ COMMENT = '<comment>' ]
} |
UNSET {
SECURE |
COMMENT
}
}
ALTER MATERIALIZED VIEW
SET DATA_METRIC_SCHEDULE = {
'<num> MINUTE'
| 'USING CRON <expr> <time_zone>'
}
ALTER MATERIALIZED VIEW UNSET DATA_METRIC_SCHEDULE
매개 변수¶
name
변경할 구체화된 뷰의 식별자를 지정합니다.
RENAME TO new_name
이 옵션을 사용하면 구체화된 뷰의 이름을 바꿀 수 있습니다.
새 식별자는 뷰가 생성되는 스키마에 대해 고유한 식별자여야 합니다. 새 식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예:
"My object"
)로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다. 자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.선택적으로 오브젝트의 이름을 바꾸는 동안 오브젝트를 다른 데이터베이스 및/또는 스키마로 이동할 수 있습니다. 그러려면 각각
db_name.schema_name.object_name
또는schema_name.object_name
형식으로 새 데이터베이스 및/또는 스키마 이름을 포함하는 정규화된new_name
값을 지정하십시오.참고
대상 데이터베이스 및/또는 스키마가 이미 있어야 합니다. 또한, 새 위치에 이름이 같은 오브젝트가 있으면 안 됩니다. 그렇지 않으면 문이 오류를 반환합니다.
오브젝트 소유자(즉, 오브젝트에 대한 OWNERSHIP 권한이 있는 역할) 역시 대상 스키마를 소유하지 않는 한 오브젝트를 관리되는 액세스 스키마로 이동하는 것은 금지됩니다.
구체화된 뷰의 이름을 바꾸어도 그 뷰에 대한 참조는 업데이트되지 않습니다. 예를 들어 구체화된 뷰 위에
V1
로 명명된 뷰를 만든 다음 구체화된 뷰의 이름을 바꾸면 뷰V1
의 정의가 쓸모없어집니다.CLUSTER BY expr#
이 명령은 구체화된 뷰를 클러스터링합니다. 클러스터링하면 구체화된 뷰의 행을 다시 정렬하여 클러스터링 키 식을 기반으로 필터링하는 쿼리의 성능이 향상됩니다.
expr#
은 구체화된 뷰를 클러스터링할 식을 지정합니다. 일반적으로, 각각의 식은 구체화된 뷰에 있는 열의 이름입니다.구체화된 뷰 클러스터링에 대한 자세한 내용은 구체화된 뷰 및 클러스터링 을 참조하십시오. 일반적으로 클러스터링에 대한 자세한 내용은 데이터 클러스터링이란 무엇입니까? 를 참조하십시오.
DROP CLUSTERING KEY
이 명령을 실행하면 구체화된 뷰의 클러스터링이 삭제됩니다.
SUSPEND RECLUSTER
SUSPEND RECLUSTER
옵션은 구체화된 뷰의 재클러스터링을 일시 중단합니다. 구체화된 뷰 클러스터링에 대한 자세한 내용은 구체화된 뷰 및 클러스터링 을 참조하십시오.RESUME RECLUSTER
RESUME RECLUSTER
옵션은 구체화된 뷰의 재클러스터링을 다시 시작합니다.SUSPEND
SUSPEND
옵션은 구체화된 뷰의 유지 관리(업데이트)와 사용을 일시 중단합니다. 뷰가 일시 중단된 상태에서는 기본 테이블에 대한 업데이트가 구체화된 뷰로 전파되지 않습니다. 구체화된 뷰 자체에도 액세스할 수 없습니다. 구체화된 뷰를 사용하려고 하면 다음과 비슷한 오류 메시지가 표시됩니다.Failure during expansion of view 'MV1': SQL compilation error: Materialized View MV1 is invalid. Invalidation reason: Marked Materialized View as invalid manually.
클러스터로 묶인 구체화된 뷰를 일시 중단하는 경우 뷰를 일시 중단하면 그 뷰의 재클러스터링이 암시적으로 일시 중단됩니다.
RESUME
RESUME
옵션을 사용하면 구체화된 뷰를 다시 사용하기 시작할 수 있습니다. 구체화된 뷰의 유지 관리도 다시 시작됩니다. 뷰가 클러스터링된 경우 그 뷰의 재클러스터링도 암시적으로 다시 시작됩니다.SET ...
구체화된 뷰에 대해 설정할 속성을 지정합니다.
SECURE
이 옵션을 선택하면 뷰가 보안 뷰로 바뀝니다. 보안 뷰에 대한 자세한 내용은 보안 뷰 관련 작업하기 을 참조하십시오.
COMMENT = 'string_literal'
이 옵션은 구체화된 뷰에 대한 설명을 설정합니다. 설명은 뷰의 동작에 아무런 영향도 미치지 않지만, 뷰를 사용하거나 유지 관리하는 사람들에게 유용한 정보를 제공할 수 있습니다.
DATA_METRIC_SCHEDULE ...
데이터 메트릭 함수를 주기적으로 실행할 일정을 지정합니다.
'num MINUTE'
데이터 메트릭 함수의 실행 사이에 삽입되는 대기 시간의 간격(분)을 지정합니다. 양의 정수만 허용합니다.
또한
num M
구문을 지원합니다.데이터 메트릭 함수의 경우
5
,15
,30
,60
,720
또는1440
값 중 하나를 사용합니다.'USING CRON expr time_zone'
데이터 메트릭 함수를 주기적으로 실행하기 cron 식과 타임존을 지정합니다. 표준 cron 유틸리티 구문의 서브세트를 지원합니다.
타임존 목록은 tz 데이터베이스 타임존 목록 을 참조하십시오.
Cron 식은 다음 필드로 구성되며, 주기 간격은 최소 5분이어야 합니다.
# __________ minute (0-59) # | ________ hour (0-23) # | | ______ day of month (1-31, or L) # | | | ____ month (1-12, JAN-DEC) # | | | | _ day of week (0-6, SUN-SAT, or L) # | | | | | # | | | | | * * * * *
다음 특수 문자가 지원됩니다.
*
와일드카드. 필드의 모든 발생을 지정합니다.
L
“last(마지막)”를 의미합니다. day-of-month(요일) 필드에 사용하면 해당 월의 “마지막 금요일”(“5L”)과 같은 구문을 지정할 수 있습니다. day-of-month 필드에서는 해당 월의 마지막 요일을 지정합니다.
/{n}
주어진 시간 단위의 n번째 인스턴스를 나타냅니다. 시간의 각 양은 독립적으로 계산됩니다. 예를 들어, 월 필드에
4/3
이 지정된 경우 데이터 메트릭 함수는 4월, 7월, 10월(즉, 해당 연도의 4번째 달부터 3개월마다)에 대해 예약됩니다. 다음 해에도 동일한 일정이 유지됩니다. 즉, 데이터 메트릭 함수는 1월(10월 실행 후 3개월)에 실행되도록 예약되지 않습니다.
참고
cron 식은 현재 지정된 타임존에 대해서만 계산됩니다. 계정에 대한 TIMEZONE 매개 변수 값을 변경하는 것(또는 사용자 또는 세션 수준에서 값을 설정)은 데이터 메트릭 함수의 타임존을 변경하지는 않습니다.
cron 식은 데이터 메트릭 함수에 대한 모든 유효한 실행 시간을 정의합니다. Snowflake는 이 일정을 기준으로 데이터 메트릭 함수를 실행하려 하지만, 그다음의 유효한 실행 시간이 시작되기 전에 이전 실행이 완료되지 않은 경우에는 유효한 실행 시간을 건너뜁니다.
특정 일자와 요일이 cron 식에 포함된 경우, 일자 또는 요일 중 하나를 만족하는 날짜에 데이터 메트릭 함수가 예약됩니다. 예를 들어,
DATA_METRIC_SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC'
는 해당 월의 10일에서 20일 사이에서 0AM에 데이터 메트릭 함수를 예약하고 해당 날짜 이외의 모든 화요일이나 목요일에도 작업을 예약합니다.cron에서 가장 짧은 시간 단위는 분입니다.
UNSET ...
구체화된 뷰에 대해 설정 해제할 속성을 지정합니다.
SECURE
TAG tag_name [ , tag_name ... ]
COMMENT
DATA_METRIC_SCHEDULE
사용법 노트¶
ALTER VIEW 명령을 사용하여 구체화된 뷰에 대해 또는 구체화된 뷰에서 마스킹 정책, 행 액세스 정책 또는 태그를 설정/설정 해제합니다.
다음과 같이 구체화된 뷰와 함께 데이터 메트릭 함수(DMFs)를 사용할 수 있습니다.
구체화된 뷰에서 DATA_METRIC_SCHEDULE 매개 변수를 설정하려면 ALTER MATERIALIZED VIEW 명령을 사용하십시오. 자세한 내용은 실행할 DMFs 예약 섹션을 참조하십시오.
구체화된 뷰에서 열에 DMF를 추가하거나 열에서 DMF를 삭제하려면 ALTER VIEW 명령을 사용하십시오.
메타데이터 관련:
주의
고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.
예¶
구체화된 뷰의 이름 바꾸기:
ALTER MATERIALIZED VIEW table1_MV RENAME TO my_mv;
구체화된 뷰 클러스터링:
ALTER MATERIALIZED VIEW my_mv CLUSTER BY(i);
구체화된 뷰의 클러스터링을 일시 중단하지만 뷰는 사용하지 않음:
ALTER MATERIALIZED VIEW my_mv SUSPEND RECLUSTER;
구체화된 뷰의 클러스터링 다시 시작:
ALTER MATERIALIZED VIEW my_mv RESUME RECLUSTER;
지정된 구체화된 뷰의 모든 사용 및 자동 유지 관리 일시 중단:
ALTER MATERIALIZED VIEW my_mv SUSPEND;
지정된 구체화된 뷰의 모든 사용 및 자동 유지 관리 다시 시작:
ALTER MATERIALIZED VIEW my_mv RESUME;
구체화된 뷰 클러스터링 중지:
ALTER MATERIALIZED VIEW my_mv DROP CLUSTERING KEY;
뷰를 보안 뷰로 수정:
ALTER MATERIALIZED VIEW mv1 SET SECURE;
구체화된 뷰에 대한 설명 추가 또는 바꾸기:
ALTER MATERIALIZED VIEW mv1 SET COMMENT = 'Sample view';