레이크하우스의 구체화된 호수 전망을 위한 최적의 새로 고침

구체화된 레이크 뷰에 대해 예약된 새로 고침이 실행될 때마다, 패브릭은 원본 데이터의 변경 내용을 기반으로 새로 고침 없음, 증분 새로 고침, 전체 새로 고침 중에 최상의 전략을 결정합니다. 이 동작을 최적 새로 고침이라고 하며, 컴퓨팅 비용과 새로 고침 시간을 최소화하면서 구체화된 레이크 보기를 최신 상태로 유지하는 데 도움이 됩니다.

이 문서에서는 최적의 새로 고침 작동 방식, 각 전략의 기능 및 필요한 경우 전체 새로 고침 모드로 전환하는 방법을 설명합니다.

비고

다음 시나리오에서는 최적의 새로 고침이 지원되지 않습니다.

  • PySpark 정의: 최적 새로 고침은 Spark SQL로 정의된 MLV에만 적용됩니다. PySpark 정의 MLV는 항상 전체 새로 고침을 사용합니다.
  • 델타가 아닌 원본 테이블: 델타가 아닌 테이블을 원본으로 사용하는 구체화된 레이크 뷰는 항상 전체 새로 고침을 수행합니다. 증분 및 새로 고침 없음 전략에는 델타 테이블 원본이 필요합니다.

최적의 새로 고침의 이점

원본 테이블에서 델타 커밋을 분석하여 최적의 새로 고침을 통해 데이터를 처리하는 방법에 대해 현명한 결정을 내릴 수 있습니다. 가능한 경우 다음과 같은 결과가 발생할 수 있습니다.

  • 낮은 비용: 패브릭이 원본 데이터가 변경되지 않았음을 감지하고 새로 고침을 완전히 건너뛸 때 컴퓨팅 및 스토리지가 줄어듭니다. 최적의 새로 고침에는 추가 요금이 적용되지 않습니다. 새로 고침 작업 중 컴퓨팅 사용량에 따라 요금이 청구됩니다.
  • 효율성 향상: 변경된 데이터만 처리해야 하는 경우 더 빠른 새로 고침 주기를 통해 보다 새로운 인사이트를 제공할 수 있습니다.
  • 시간 절약: 전체 데이터 세트를 다시 계산하는 대신 증분 처리가 적용될 때 새로 고침 기간이 줄어듭니다.

최적의 새로 고침 전략

다음 표에서는 최적의 새로 고침을 선택할 수 있는 새로 고침 전략에 대해 설명합니다.

정책 새로 고침 Description
새로 고침 없음 원본 테이블에서 새 델타 커밋이 검색되지 않으면 Fabric은 새로 고침을 완전히 건너뛰고 불필요한 컴퓨팅을 방지합니다.
증분 새로 고침 원본 테이블에서 새 델타 커밋이 검색될 때 변경된 데이터만 처리합니다.
전체 새로 고침 전체 원본 데이터 세트에서 구체화된 전체 레이크 뷰를 다시 계산합니다. 이 전략은 지원되지 않는 식이 검색되거나, 변경 내용을 증분 방식으로 처리할 수 없거나, 원본 데이터 세트가 충분히 작아서 전체 다시 계산이 증분 처리보다 빠른 경우에 사용됩니다.

중요합니다

증분 새로 고침을 사용하려면 구체화된 레이크 뷰 정의에서 참조되는 모든 원본 테이블에 대한 델타 CDF(변경 데이터 피드) 속성(delta.enableChangeDataFeed=true)이 필요합니다. CDF를 사용하도록 설정하지 않으면 최적의 새로 고침은 새로 고침 없음과 전체 새로 고침 중에서만 선택할 수 있습니다. 자세한 내용은 증분 새로 고침 사용을 참조하세요.

최적의 새로 고침 설정

최적의 새로 고침 토글은 추가 설정 없이 새로 고침 및 전체 새로 고침 전략을 제공합니다. 증분 새로 고침 전략의 잠금을 해제하려면 원본 테이블에서 변경 데이터 피드를 사용하도록 설정해야 합니다.

최적의 새로 고침 모드 켜기

기본적으로 구체화된 레이크 뷰 계보에 최적 새로 고침 모드가 사용됩니다. 사용하도록 설정되지 않은 경우 다음 단계에 따라 사용 설정합니다.

  1. 레이크하우스로 이동하여 구체화된 호수 전망을 선택합니다.

  2. 관리를 선택한 다음 최적의 새로 고침 토글을 선택하여 설정합니다.

    최적의 새로 고침 모드를 사용하도록 설정/해제를 보여 주는 스크린샷

증분 새로 고침 사용

증분 새로 고침을 사용하려면 구체화된 레이크 뷰 정의에서 참조되는 모든 원본 테이블 또는 구체화된 레이크 뷰에서 델타 CDF(변경 데이터 피드) 속성을 사용하도록 설정해야 합니다. CDF를 사용하면 패브릭에서 전체 데이터 세트를 다시 처리하지 않고 마지막 새로 고침 이후 변경된 행만 읽을 수 있습니다.

CDF를 사용하도록 설정하지 않으면 최적의 새로 고침은 새로 고침 없음과 전체 새로 고침 중에서만 선택할 수 있습니다.

팁 (조언)

새로 고침 최적화 기회를 식별할 수 있도록 Fabric 증분 새로 고침에 적합한 구체화된 레이크 뷰를 나열하는 배너를 표시하지만 CDF는 하나 이상의 원본 테이블에서 사용하도록 설정되지 않았기 때문에 차단됩니다. 배너는 계보 보기, 최근 실행 세부 정보 및 개별 노드 수준에 표시되므로 사용하는 진입점과의 간격을 확인할 수 있습니다.

CDF 활성화 단추가 있는 구체화된 레이크 보기 페이지의 새로 고침 및 비용 저장 배너를 보여 주는 스크린샷.

배너에서 직접 CDF를 사용하도록 설정하려면 다음을 수행합니다.

  1. 배너에서 CDF 활성화를 선택합니다.

  2. 데이터 피드 변경 사용 대화 상자에서 구체화된 레이크 뷰 목록과 CDF를 사용할 원본 테이블을 검토합니다.

    구체화된 레이크 뷰 및 CDF를 사용할 원본 테이블을 나열하는 데이터 피드 변경 사용 대화 상자의 스크린샷.

  3. 사용을 선택합니다. 다음 새로 고침은 업데이트된 CDF 상태를 반영합니다.

비고

  • 추가 전용 데이터에 대해 증분 새로 고침이 지원됩니다. 원본 데이터에 삭제 또는 업데이트가 포함된 경우 Fabric은 전체 새로 고침을 수행합니다.
  • 원본 테이블에서 CDF를 사용하도록 설정하면 추가 전용 워크로드에 대해 측정 가능한 스토리지 또는 성능 효과가 없으며, 이는 증분 새로 고침이 지원하는 시나리오입니다. CDF는 다른 패브릭 기능도 활용할 수 있는 표준 Delta Lake 테이블 속성입니다. CDF 작동 방식에 대한 자세한 내용은 Delta Lake 변경 데이터 피드 사용을 참조하세요.

CDF를 생성 시 TBLPROPERTIES 문에 포함하여 활성화할 수 있습니다.

CREATE OR REPLACE MATERIALIZED LAKE VIEW silver.cleaned_order_data
TBLPROPERTIES (delta.enableChangeDataFeed=true)
AS
SELECT 
    o.order_id,
    o.order_date,
    o.product_id,
    p.product_name,
    o.quantity,
    p.price,
    o.quantity * p.price AS revenue
FROM bronze.orders o
INNER JOIN bronze.products p
ON o.product_id = p.product_id

기존 원본 테이블의 경우 CDF를 사용하도록 설정하는 데 사용합니다 ALTER TABLE .

ALTER TABLE <table-name> SET TBLPROPERTIES (delta.enableChangeDataFeed = true);

예를 들어 시작 가이드에서 두 원본 테이블 모두에서 CDF를 사용하도록 설정하려면 다음을 수행합니다.

ALTER TABLE bronze.products SET TBLPROPERTIES (delta.enableChangeDataFeed = true);
ALTER TABLE bronze.orders SET TBLPROPERTIES (delta.enableChangeDataFeed = true);

증분 새로 고침에서 지원하는 SQL 구문

구체화된 레이크 뷰 정의에서 여기에 설명된 SQL 구문만 사용하는 경우 증분 새로 고침이 작동합니다. 쿼리에 창 함수 또는 비결정적 함수와 같은 지원되지 않는 구문이 포함된 경우 Fabric은 여전히 데이터를 새로 고치지만 전체 새로 고침으로 돌아갑니다.

SQL 구문 주석
SELECT 식 결정적 함수 및 기본 제공 식이 지원됩니다. 증분 새로 고침에는 지원되지 않습니다. 집계 함수(SUM(),, COUNT(), AVG()MIN(), MAX(), STDDEV()등), GROUP BY, DISTINCT창 함수 및 비결정적 함수(예: rand(), . uuid()current_timestamp()
FROM 델타 테이블 및 구체화된 레이크 뷰를 지원합니다. 하위 쿼리 및 CTE는 지원되는 절만 사용하는 경우 작동합니다.
WHERE 결정적 기본 제공 함수만 지원됩니다.
INNER JOIN (내부 조인) 지원됨
왼쪽 외부 조인/왼쪽 세미 조인 지원됨 증분 새로 고침은 새로 고침 주기 동안 오른쪽 테이블이 변경되지 않은 경우에만 작동합니다. 오른쪽 테이블을 변경하면 전체 새로 고침이 트리거됩니다.
UNION ALL 지원됨
WITH 지원되는 절만 사용하는 경우 공통 테이블 식(CTE)입니다.
식의 하위 쿼리 SELECT 또는 WHERE 식 내의 하위 쿼리(예: 스칼라 하위 쿼리 또는 EXISTS)는 참조된 테이블에 변경 내용이 있는 경우 전체 새로 고침을 트리거합니다.
데이터 품질 제약 조건 제약 조건에서는 결정적 기본 제공 함수만 지원됩니다.

비고

지원되지 않는 구문을 사용하면 구체화된 레이크 뷰를 만들 수 없습니다. 이는 Fabric이 증분 새로 고침 대신 전체 새로 고침을 사용한다는 의미일 뿐입니다.

전체 새로 고침

필요한 경우 최적의 새로 고침이 자동으로 전체 새로 고침으로 되돌아가므로 일반적으로 강제로 새로 고칠 필요가 없습니다. 그러나 예기치 않은 결과를 해결하거나 수정 후 데이터를 다시 처리하는 등 전체 새로 고침을 수동으로 트리거하려는 경우가 있습니다.

SQL을 사용하여 일회성 전체 새로 고침 실행

구체화된 특정 레이크 뷰를 완전히 새로 고치려면 다음 명령을 실행합니다.

REFRESH MATERIALIZED LAKE VIEW [workspace.lakehouse.schema].MLV_Identifier FULL

비고

작업 공간 이름에 공백이 포함되어 있으면 백틱(``)으로 묶으십시오. `My Workspace`.lakehouse.schema.view_name

최적의 새로 고침 끄기

예약된 모든 실행이 전체 새로 고침을 수행하도록 하려면 최적의 새로 고침 토글을 해제할 수 있습니다. 이렇게 하면 새로 고침 없음 및 증분 전략이 모두 비활성화됩니다. 모든 실행은 원본 데이터가 변경되지 않더라도 전체 데이터 세트를 다시 계산합니다.

  1. 레이크하우스로 이동하여 구체화된 호수 전망을 선택합니다.

  2. 관리를 클릭하고 최적 새로 고침 토글을 끕니다.

    전체 새로 고침 모드로 전환하도록 토글을 보여 주는 스크린샷.