중요합니다
이 기능은 베타 버전으로 제공됩니다. 작업 영역 관리자는 미리 보기 페이지에서 이 기능에 대한 액세스를 제어할 수 있습니다. Azure Databricks 미리 보기 관리를 참조하세요.
새로 고침을 증분할 시기를 제어하여 구체화된 뷰에 새로 고침 정책을 추가합니다. (파이프라인) 문에CREATE MATERIALIZED VIEW 적용됩니다.
증분화에 대한 자세한 내용은 구체화된 뷰에 대한 증분 새로 고침을 참조하세요. Databricks SQL의 문을 사용하여 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에서는 쿼리를 증분화할 수 없는 경우 create 문이 실패합니다.주 행동 증분은 새로 고침에 사용할 수 있습니다. 증분 새로 고침을 수행합니다. 새로 고침에는 증분을 사용할 수 없습니다. 전체 새로 고침을 수행합니다. 만들기 또는 다시 초기화가 필요하지만 쿼리에 대해 증분화가 가능합니다. 전체 새로 고침을 수행합니다. 만들기 또는 다시 초기화가 필요하며 쿼리에 대해 증분화가 불가능합니다. 작업이 실패합니다. INCREMENTAL STRICT시스템은 증분 새로 고침을 사용합니다.
CREATE에서는 쿼리를 증분화할 수 없는 경우 create 문이 실패합니다.주 행동 증분은 새로 고침에 사용할 수 있습니다. 증분 새로 고침을 수행합니다. 새로 고침에는 증분을 사용할 수 없습니다. 새로 고침이 실패합니다. 만들기 또는 다시 초기화가 필요하지만 쿼리에 대해 증분화가 가능합니다. 전체 새로 고침을 수행합니다. 만들기 또는 다시 초기화가 필요하며 쿼리에 대해 증분화가 불가능합니다. 작업이 실패합니다. FULL시스템은 항상 전체 새로 고침을 사용합니다.
주 행동 증분은 새로 고침에 사용할 수 있습니다. 전체 새로 고침을 수행합니다. 새로 고침에는 증분을 사용할 수 없습니다. 전체 새로 고침을 수행합니다. 만들기 또는 다시 초기화가 필요합니다. 전체 새로 고침을 수행합니다.
실패에 대한 동작
새로 고침 정책이 충족되지 않아 새로 고침이 실패하면 시스템에서 REFRESH POLICY INCREMENTAL (STRICT)증분화할 수 없는 이유를 설명하는 자세한 정보가 포함된 오류 클래스 MATERIALIZED_VIEW_NOT_INCREMENTALIZABLE 를 반환합니다.
-
AGGREGATE_NOT_TOP_NODE:GROUP BY위의 복잡한 식은 지원되지 않습니다. -
EXPRESSION_NOT_DETERMINSTIC: 비결정적 함수(예:RAND쿼리)가 사용됩니다. -
INPUT_NOT_IN_DELTA: 하나 이상의 원본 데이터 세트가 델타 테이블이 아닙니다. -
OPERATOR_NOT_INCREMENTALIZABLE: 복합 조인과 같은 연산자는 증분화를 방지합니다. -
ROW_TRACKING_NOT_ENABLED: 행 추적이 필요한 원본 테이블에는 행 추적을 사용할 수 없습니다. -
SUBQUERY_EXPRESSION_NOT_INCREMENTALIZABLE: 쿼리에서 하나 이상의 하위 쿼리는 증분화할 수 없습니다. -
UDF_NOT_DETERMINISTIC: 식에 사용된 하나 이상의 UDF가 결정적으로 표시되지 않습니다. -
WINDOW_WITHOUT_PARTITION_BY: 없는 창 사양PARTITION_BY은 증분할 수 없습니다.
쿼리를 증분화할 수 있는 원인을 이해하려면 구체화된 뷰에 대한 증분 새로 고침을 참조하세요.
SQL 쿼리를 증분화할 수 있는지 확인하려면 Databricks SQL의 EXPLAIN CREATE MATERIALIZED VIEW 문을 사용합니다.
EXPLAIN CREATE MATERIALIZED VIEW을(를) 참조하세요.
예시
-- Create a materialized view with an incremental policy
CREATE OR REFRESH MATERIALIZED VIEW my_mv
REFRESH POLICY INCREMENTAL
AS SELECT a, sum(b) FROM my_catalog.example.my_table GROUP BY a;