다음을 통해 공유


구체화된 레이크 뷰의 데이터 품질

빅 데이터 시대에 medallion 아키텍처는 원시 데이터에서 고도로 큐레이팅된 데이터 세트에 이르기까지 다양한 구체화 단계에서 데이터를 관리하고 처리하기 위한 강력한 프레임워크로 유명해졌습니다. 이 구조화된 접근 방식은 데이터 관리 효율성을 향상시킬 뿐만 아니라 데이터 수명 주기 내내 데이터 품질이 유지되도록 합니다.

Medallion 아키텍처의 모든 단계에서 데이터 품질을 보장하는 것은 정보에 입각한 비즈니스 의사 결정을 내리는 데 중요합니다. 데이터 품질이 저하되어 잘못된 인사이트 및 운영 비효율성이 발생할 수 있습니다.

이 문서에서는 Microsoft Fabric의 구체화된 MLV(Lake Views)에서 데이터 품질을 구현하는 방법을 설명합니다.

데이터 품질 구현

데이터를 변환할 때 원본 테이블에서 품질이 좋지 않은 데이터를 제외하도록 정확한 쿼리를 작성하는 것이 중요합니다. 이로 인해 처리 시간이 늘어나고 사소한 데이터 문제로 인해 전체 파이프라인이 실패하는 경우가 있습니다.

데이터 품질은 MLV를 정의할 때 제약 조건을 설정하여 유지 관리됩니다. 패브릭 내의 구체화된 뷰는 데이터 품질 관리에 대한 검사를 효율적으로 구현하는 방법을 제공합니다.

제약 조건이 지정된 경우 다음 작업을 구현할 수 있습니다.

FAIL – 제약 조건을 위반하면 MLV 새로 고침이 중지되고 첫 번째 인스턴스에서 중지됩니다. FAIL 키워드를 지정하지 않아도 기본 동작입니다.

DROP – 이 작업은 MLV를 처리하고 지정된 제약 조건을 충족하지 않는 레코드를 제거합니다. 또한 계보 보기에서 제거된 레코드 수를 제공합니다.

비고

DROP 및 FAIL 작업이 모두 MLV에 정의되어 있으면 FAIL 작업이 우선합니다.

구체화된 레이크 뷰에서 데이터 품질 검사 정의

다음 예제에서는 필드가 null이 아닌지 cust_blank 확인하는 제약 조건을 customerName정의합니다. null customerName 이 있는 행은 처리에서 제외됩니다.

CREATE MATERIALIZED LAKE VIEW IF NOT EXISTS silver.customers_enriched  
(CONSTRAINT cust_blank CHECK (customerName is not null) on MISMATCH DROP)
AS
SELECT
    c.customerID,
    c.customerName,
    c.contact, 
    CASE  
       WHEN COUNT(o.orderID) OVER (PARTITION BY c.customerID) > 0 THEN TRUE  
       ELSE FALSE  
    END AS has_orders 
FROM bronze.customers c LEFT JOIN bronze.orders o 
ON c.customerID = o.customerID; 

현재 제한 사항

  • MLV를 만든 후 데이터 품질 제약 조건을 업데이트하는 것은 지원되지 않습니다. 데이터 품질 제약 조건을 업데이트하려면 MLV를 다시 만들어야 합니다.
  • 제약 조건의 LIKE 또는 regex와 같은 연산자와 함께 함수 및 패턴 검색의 사용이 제한됩니다.

알려진 문제

  • 제약 조건에서 FAIL 작업을 사용하여 MLV를 만들고 새로 고치면 "델타 테이블을 찾을 수 없음" 문제가 발생할 수 있습니다. 이러한 경우 MLV를 다시 만들고 FAIL 작업을 사용하지 않는 것이 좋습니다.