구체화된 뷰 변경
구체화된 뷰 변경 (ALTER MATERIALIZED VIEW)
Materialized views는 Enterprise Edition이 필요합니다. 업그레이드에 대해 문의하려면 Snowflake Support에 연락하세요.
현재/지정된 schema에서 materialized view를 변경합니다. 지원되는 작업은 다음과 같습니다.
- materialized view 이름 변경
- materialized view의 사용 및 유지 관리 일시 중지 및 재개
- materialized view 클러스터링
- materialized view의 재클러스터링 일시 중지 및 재개
- materialized view의 클러스터링 제거
자세한 내용은 Working with Materialized Views를 참조하세요.
참고:
CREATE MATERIALIZED VIEW , DROP MATERIALIZED VIEW , SHOW MATERIALIZED VIEWS , DESCRIBE MATERIALIZED VIEW
출처: 문서
본문
Syntax
ALTER MATERIALIZED VIEW
{
RENAME TO |
CLUSTER BY ( [, ... ] ) |
DROP CLUSTERING KEY |
SUSPEND RECLUSTER |
RESUME RECLUSTER |
SUSPEND |
RESUME |
SET {
[ SECURE ]
[ CONTACT = [ , = ... ] ]
[ COMMENT = '' ]
} |
UNSET {
SECURE
CONTACT |
COMMENT
}
}
ALTER MATERIALIZED VIEW
SET DATA_METRIC_SCHEDULE = {
' MINUTE'
| 'USING CRON '
}
ALTER MATERIALIZED VIEW UNSET DATA_METRIC_SCHEDULE
Parameters
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
이 옵션은 뷰를 보안 뷰로 전환해요. 보안 뷰에 대한 자세한 내용은 Working with Secure Views를 참조하세요.
CONTACT purpose = contact [ , purpose = contact ... ]
기존 객체를 하나 이상의 contacts와 연결해요. 유효한 용도 목록은 를 참조하세요.
같은 문에서 CONTACT 속성을 다른 속성과 함께 설정할 수 없어요.
COMMENT = 'string_literal'
이 옵션은 구체화된 뷰에 주석을 설정해요. 주석은 뷰의 동작에는 영향을 미치지 않지만, 뷰를 사용하거나 유지 관리하는 사람들에게 유용한 정보를 제공할 수 있어요.
DATA_METRIC_SCHEDULE ...
데이터 메트릭 함수를 주기적으로 실행할 일정을 지정해요.
'num MINUTE'
데이터 메트릭 함수 실행 사이에 삽입되는 대기 시간(분) 간격을 지정해요. 양의 정수만 허용돼요.
num M 구문도 지원해요.
데이터 메트릭 함수의 경우 다음 값 중 하나를 사용하세요: 5, 15, 30, 60, 720, 또는 1440.
'USING CRON expr time_zone'
데이터 메트릭 함수를 주기적으로 실행하기 위한 cron 표현식과 시간대를 지정합니다. 표준 cron 유틸리티 구문의 일부를 지원합니다.
시간대 목록은 list of tz database time zones을 참조하세요.
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-week 필드에서 사용하면 특정 월의 "마지막 금요일"("5L")과 같은 구문을 지정할 수 있습니다. day-of-month 필드에서는 그 달의 마지막 날을 지정합니다.
/{n}
주어진 시간 단위의 n번째 인스턴스를 나타냅니다. 각 시간 양자(quanta)는 독립적으로 계산됩니다. 예를 들어, month 필드에 4/3을 지정하면 데이터 메트릭 함수는 4월, 7월, 10월에 예약됩니다(즉, 연중 4번째 달부터 시작하여 3개월마다). 이후 연도에도 동일한 일정이 유지됩니다. 즉, 데이터 메트릭 함수는 1월(10월 실행 후 3개월)에는 실행되도록 예약되지 않습니다.
- cron 표현식은 현재 지정된 시간대에 대해서만 평가됩니다. 계정의 매개변수 값을 변경하거나(또는 사용자 또는 세션 수준에서 값을 설정하더라도) 데이터 메트릭 함수의 시간대는 변경되지 않습니다.
- cron 표현식은 데이터 메트릭 함수의 모든 유효한 실행 시간을 정의합니다. Snowflake는 이 일정에 따라 데이터 메트릭 함수를 실행하려고 시도합니다. 그러나 이전 실행이 다음 유효한 실행 시간이 시작되기 전에 완료되지 않은 경우 해당 유효한 실행 시간은 건너뜁니다.
- cron 표현식에 특정 day of month와 day of week가 모두 포함된 경우, 데이터 메트릭 함수는 day of month 또는 day of week 중 하나를 충족하는 날짜에 예약됩니다. 예를 들어,
DATA_METRIC_SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC'는 매월 10일부터 20일 사이의 0AM에 데이터 메트릭 함수를 예약하고, 그 날짜 범위 밖의 화요일이나 목요일에도 예약합니다. - cron에서 시간의 가장 짧은 세분성(granularity)은 분입니다.
UNSET ...
구체화된 뷰에서 해제할 속성을 지정합니다:
SECURE- TAG tag_name [ , tag_name ... ]
- CONTACT purpose
COMMENTDATA_METRIC_SCHEDULE
같은 문에서 CONTACT 속성을 다른 속성과 함께 해제할 수 없습니다.
사용 참고 사항
-
ALTER VIEW 명령을 사용하여 구체화된 뷰에 마스킹 정책, 행 액세스 정책 또는 태그를 설정/해제할 수 있습니다.
-
데이터 메트릭 함수(DMF)는 다음과 같이 구체화된 뷰와 함께 사용할 수 있습니다:
- 구체화된 뷰에 매개변수를 설정하려면 ALTER MATERIALIZED VIEW 명령을 사용하세요. 자세한 내용은 을(를) 참조하세요.
- 구체화된 뷰의 열에 DMF를 추가하거나 열에서 DMF를 제거하려면 ALTER VIEW 명령을 사용하세요.
-
메타데이터 관련:
고객은 Snowflake 서비스를 사용할 때 메타데이터에 User object의 경우를 제외한 개인 데이터, 민감한 데이터, 수출 통제 데이터 또는 기타 규제 대상 데이터가 입력되지 않도록 해야 합니다. 자세한 내용은 Metadata fields in 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';