적용 대상:
Databricks SQL
Databricks Runtime
중요합니다
이 기능은 베타 버전으로 제공됩니다. 작업 영역 관리자는 미리 보기 페이지에서 이 기능에 대한 액세스를 제어할 수 있습니다. Azure Databricks 미리 보기 관리를 참조하세요.
새로 고침을 증분할 시기를 제어하여 구체화된 뷰에 새로 고침 정책을 추가합니다. 문에 CREATE MATERIALIZED VIEW 적용됩니다.
증분화에 대한 자세한 내용은 구체화된 뷰에 대한 증분 새로 고침을 참조하세요. 문을 사용하여 SQL 쿼리를 증분할 수 있는지 확인할 수 있습니다 EXPLAIN CREATE MATERIALIZED VIEW .
EXPLAIN CREATE MATERIALIZED VIEW을(를) 참조하세요.
문법
REFRESH POLICY refresh_policy
refresh_policy:
AUTO | INCREMENTAL | INCREMENTAL STRICT | FULL
매개 변수
refresh_policy
구체화된 뷰에 대한 새로 고침 정책을 정의합니다.
REFRESH POLICY생략AUTO된 경우 기본 정책입니다.새로 고침 정책은 새로 고침이 구체화된 뷰의 증분화를 처리하는 방법을 정의합니다.
AUTO시스템은 비용 모델에 따라 증분 또는 전체 새로 고침을 자동으로 선택합니다.
주 행동 증분은 새로 고침에 사용할 수 있습니다. 비용 모델을 사용하여 더 저렴하거나, 증분하거나, 가득 찬 것을 결정합니다. 증분은 새로 고칠 수 없습니다. 전체 새로 고침을 수행합니다. 만들기 또는 다시 초기화가 필요합니다(예: 스키마 변경 시). 전체 새로 고침을 수행합니다. INCREMENTAL가능하면 시스템에서 증분 새로 고침을 사용합니다.
CREATE에서는 쿼리를 증분화할 수 없는 경우 만들기가 실패합니다.주 행동 증분은 새로 고침에 사용할 수 있습니다. 증분 새로 고침을 수행합니다. 새로 고침에는 증분을 사용할 수 없습니다. 전체 새로 고침을 수행합니다. 만들기 또는 다시 초기화가 필요하지만 쿼리에 대해 증분화가 가능합니다. 전체 새로 고침을 수행합니다. 만들기 또는 다시 초기화가 필요하며 쿼리에 대해 증분화가 불가능합니다. 작업이 실패합니다. INCREMENTAL STRICT시스템은 증분 새로 고침을 사용합니다.
CREATE에서는 쿼리를 증분화할 수 없는 경우 만들기가 실패합니다.주 행동 증분은 새로 고침에 사용할 수 있습니다. 증분 새로 고침을 수행합니다. 새로 고침에는 증분을 사용할 수 없습니다. 새로 고침이 실패합니다. 만들기 또는 다시 초기화가 필요하지만 쿼리에 대해 증분화가 가능합니다. 전체 새로 고침을 수행합니다. 만들기 또는 다시 초기화가 필요하며 쿼리에 대해 증분화가 불가능합니다. 작업이 실패합니다. FULL시스템은 항상 전체 새로 고침을 사용합니다.
주 행동 증분은 새로 고침에 사용할 수 있습니다. 전체 새로 고침을 수행합니다. 새로 고침에는 증분을 사용할 수 없습니다. 전체 새로 고침을 수행합니다. 만들기 또는 다시 초기화가 필요합니다. 전체 새로 고침을 수행합니다.
실패에 대한 동작
새로 고침 정책이 충족되지 않아 새로 고침이 실패하면 시스템에서 REFRESH POLICY INCREMENTAL (STRICT)증분화할 수 없는 이유를 설명하는 자세한 정보가 포함된 오류 클래스 MATERIALIZED_VIEW_NOT_INCREMENTALIZABLE 를 반환합니다. 다음은 그 예입니다.
-
OPERATOR_NOT_SUPPORTED: 복합 조인과 같은 연산자는 증분화를 방지합니다. -
EXPRESSION_NOT_DETERMINSTIC: 비결정적 함수(예:RAND쿼리)가 사용됩니다.
쿼리를 증분화할 수 있는 원인을 이해하려면 구체화된 뷰에 대한 증분 새로 고침을 참조하세요.
SQL 쿼리를 증분화할 수 있는지 확인하려면 문을 사용합니다 EXPLAINCREATE MATERIALIZED VIEW . EXPLAIN CREATE MATERIALIZED VIEW을(를) 참조하세요.
예시
-- Create a materialized view with an incremental policy
CREATE MATERIALIZED VIEW IF NOT EXISTS my_mv
REFRESH POLICY INCREMENTAL
AS SELECT a, sum(b) FROM my_catalog.example.my_table GROUP BY a;