적용 대상:
Databricks SQL
뷰와 연결된 메타데이터를 변경합니다.
다음 작업을 수행할 수 있습니다.
- 기존 구체화된 뷰를 새로 고치는 일정을 추가합니다.
- 구체화된 뷰에 대한 기존 새로 고침 일정을 변경합니다.
- 구체화된 뷰에 대한 새로 고침 일정을 삭제합니다. 일정이 삭제되면 최신 데이터를 반영하기 위해 개체를 수동으로 새로 고쳐야 합니다.
구체화된 뷰에 주석을 추가하거나 변경하려면 다음을 사용합니다 COMMENT ON.
참고
정의된 SQL과 모순되는 방식으로 파이프라인에서 만든 데이터 세트를 변경하면 일부 변경 내용이 되돌려질 수 있습니다.
Lakeflow Spark 선언적 파이프라인에서 명령 사용을 ALTER 참조하세요.
구문
ALTER MATERIALIZED VIEW view_name
{
{ ADD | ALTER } schedule |
DROP SCHEDULE |
ALTER COLUMN column_clause |
SET ROW FILTER clause |
DROP ROW FILTER |
SET TAGS clause |
UNSET TAGS clause }
schedule
{ SCHEDULE [ REFRESH ] schedule_clause |
TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ] }
schedule_clause
{ EVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS } |
CRON cron_string [ AT TIME ZONE timezone_id ] }
column_clause
column_identifier
{ COMMENT clause |
SET MASK clause |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause }
매개 변수
-
정의를 변경할 구체화된 뷰의 이름입니다. 이름에는 임시 사양이 포함되지 않아야 합니다.
일정
구체화된 뷰에서 또는
SCHEDULE문을 추가하거나TRIGGER변경합니다.참고
이 명령을 사용하여 Lakeflow Spark 선언적 파이프라인을 사용하여 만든 구체화된 뷰의 일정을 수정할 수 없습니다. 파이프라인 편집기를 사용합니다.
SCHEDULE [ REFRESH ] schedule_clauseEVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS }주기적으로 발생하는 새로 고침을 예약하려면
EVERY구문을 사용합니다.EVERY구문을 지정하면 스트리밍 테이블 또는 구체화된 뷰는 제공된 값(예:HOUR,HOURS,DAY,DAYS,WEEK또는WEEKS)에 따라 지정된 간격으로 주기적으로 새로 고쳐집니다. 다음 표에서는number허용되는 정수 값을 나열합니다.시간 단위 정수 값 HOUR or HOURS1 <= H <= 72 DAY or DAYS1<은 D이고 <은 31입니다 WEEK or WEEKS1 <= W <= 8 참고
포함된 시간 단위의 단수 및 복수 형태는 의미상 동일합니다.
CRON cron_string [ AT TIME ZONE timezone_id ]quartz cron 값을 사용하여 새로 고침을 설정합니다. 유효한 time_zone_values 허용됩니다.
AT TIME ZONE LOCAL은 지원되지 않습니다.AT TIME ZONE이 없는 경우 세션 표준 시간대가 사용됩니다.AT TIME ZONE가 없고 세션 표준 시간대가 설정되지 않은 경우 오류가 발생합니다.SCHEDULE은SCHEDULE REFRESH와 의미 체계가 같습니다.
TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ]중요합니다
이
TRIGGER ON UPDATE기능은 베타에 있습니다.업스트림 데이터 원본이 업데이트될 때 1분에 한 번씩 구체화된 뷰를 새로 고치도록 설정합니다. 새로 고침 사이에 최소 시간이 필요한 값을
AT MOST EVERY설정합니다.업스트림 데이터 원본은 외부 또는 관리형 델타 테이블(구체화된 뷰 또는 스트리밍 테이블 포함) 또는 종속성이 지원되는 테이블 형식으로 제한되는 관리형 뷰여야 합니다.
파일 이벤트를 사용하도록 설정하면 트리거 성능이 향상되고 트리거 업데이트에 대한 일부 제한이 증가할 수 있습니다.
INTERVAL
trigger_interval문은 1분 이상입니다.TRIGGER ON UPDATE에는 다음과 같은 제한 사항이 있습니다.- TRIGGER ON UPDATE을 사용할 때 물리화된 뷰당 최대 10개의 업스트림 데이터 원본을 사용할 수 있습니다.
- TRIGGER ON UPDATE을 사용하여 최대 1,000개 스트리밍 테이블 또는 구체화된 뷰를 지정할 수 있습니다.
- 이 절은
AT MOST EVERY기본적으로 1분이며 1분 미만일 수 없습니다.
DROP SCHEDULE구체화된 뷰에서 일정을 제거합니다.
ALTER COLUMN clauseALTER COLUMN 절을 참조하세요.
SETROW FILTER 절중요합니다
이 기능은 공개 미리보기 단계에 있습니다.
구체화된 뷰에 행 필터 함수를 추가합니다. 구체화된 뷰에 대한 모든 후속 쿼리는 함수가 부울
TRUE로 계산되는 행의 하위 집합을 받습니다. 이는 함수가 호출하는 사용자의 ID 또는 그룹 멤버 자격을 검사하여 특정 행을 필터링할지 여부를 결정할 수 있는 세분화된 액세스 제어 목적에 유용할 수 있습니다.만든 후에 추가된 행 필터는 다음 업데이트 후에만 다운스트림 테이블로 전파됩니다. 연속 파이프라인의 경우 파이프라인을 다시 시작해야 합니다.
DROP ROW FILTER중요합니다
이 기능은 공개 미리보기 단계에 있습니다.
구체화된 뷰에서 행 필터를 삭제합니다(있는 경우). 이후 쿼리는 자동 필터링 없이 테이블의 모든 행을 반환합니다.
SET TAGS ( { tag_name = tag_value } [, ...] )중요합니다
이 기능은 공개 미리보기 단계에 있습니다.
구체화된 뷰에 태그를 적용합니다. 구체화된 뷰에
APPLY TAG태그를 추가할 수 있는 권한이 있어야 합니다.tag_name리터럴
STRING이라는 것입니다. 구체화된tag_name는 뷰나 열 내에서 고유해야 합니다.tag_value리터럴
STRING이라는 것입니다.
UNSET TAGS ( tag_name [, ...] )중요합니다
이 기능은 공개 미리보기 단계에 있습니다.
구체화된 뷰에서 태그를 제거합니다. 구체화된 뷰에서 태그를 제거할 수 있는 권한이 있어야 합니다
APPLY TAG.tag_name리터럴
STRING이라는 것입니다. 구체화된tag_name는 뷰나 열 내에서 고유해야 합니다.
ALTER COLUMN 절
중요합니다
이 기능은 공개 미리보기 단계에 있습니다.
열의 위치나 속성을 변경합니다.
구문
ALTER COLUMN
column_identifier
{ COMMENT comment |
SET MASK mask_clause |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause }
매개 변수
-
변경할 열의 이름입니다.
COMMENT commentcolumn_name열에 대한 설명을 변경합니다.comment는STRING리터럴로 있어야 합니다.SETMASK 절열 마스크 함수를 추가하여 중요한 데이터를 익명화합니다. 해당 열의 모든 후속 쿼리는 열의 원래 값 대신 열에 대해 해당 함수를 평가한 결과를 받습니다. 이 기능은 함수가 호출하는 사용자의 ID 또는 그룹 멤버 자격을 검사하여 값을 수정할지 여부를 결정할 수 있는 세분화된 액세스 제어 목적에 유용할 수 있습니다.
만든 후에 추가된 열 마스크는 다음 업데이트 후에 다운스트림 테이블로만 전파됩니다. 연속 파이프라인의 경우 파이프라인을 다시 시작해야 합니다.
DROP MASK이 열에 대한 열 마스크(있는 경우)를 제거합니다. 이 열의 이후 쿼리는 열의 원래 값을 받습니다.
SET TAGS ( { tag_name = tag_value } [, ...] )열에 태그를 적용합니다. 열에 태그를 추가할 수 있는
APPLY TAG권한이 있어야 합니다.tag_name
리터럴
STRING이라는 것입니다.tag_name은 테이블 또는 열 내에서 고유해야 합니다.tag_value
리터럴
STRING이라는 것입니다.
UNSET TAGS ( tag_name [, ...] )열에서 지정된 태그를 제거합니다. 열에서 태그를 제거할 수 있는
APPLY TAG권한이 있어야 합니다.tag_name
리터럴
STRING이라는 것입니다.tag_name은 테이블 또는 열 내에서 고유해야 합니다.
예제
-- Adds a schedule to refresh the materialized view whenever its upstream data gets updated.
> ALTER MATERIALIZED VIEW my_mv
ADD TRIGGER ON UPDATE;
-- Alters the schedule to refresh the materialized view when its upstream data
-- gets updated, and make sure the update frequency is no more than 1 update
-- per hour.
> ALTER MATERIALIZED VIEW my_mv
ALTER TRIGGER ON UPDATE AT MOST EVERY INTERVAL 1 hour;
-- Alters the schedule to run every two hours for a materialized view
> ALTER MATERIALIZED VIEW my_mv
ALTER SCHEDULE EVERY 2 HOURS;
-- Alters the schedule to refresh a materialized view once a day
-- at midnight in Los Angeles
> ALTER MATERIALIZED VIEW my_mv
ALTER SCHEDULE CRON '0 0 0 * * ? *' AT TIME ZONE 'America/Los_Angeles';
-- Drops the schedule for a materialized view
> ALTER MATERIALIZED VIEW my_mv
DROP SCHEDULE;
-- Adds a column comment
> ALTER MATERIALIZED VIEW my_mv
ALTER COLUMN my_column_name COMMENT 'test'