다음을 통해 공유


구체화된 레이크 뷰에 대한 Spark SQL 참조

이 문서에서는 Microsoft Fabric의 구체화된 레이크 뷰와 관련된 활동에 대한 Spark SQL 구문에 대해 알아봅니다.

구체화된 레이크 뷰 만들기

모든 테이블이나 레이크하우스 내의 다른 구체화된 호수 전망에서 구체화된 호수 전망을 정의할 수 있습니다. 다음 코드에서는 Spark SQL을 사용하여 구체화된 레이크 뷰를 선언하는 구문을 간략하게 설명합니다.

CREATE [OR REPLACE] MATERIALIZED LAKE VIEW [IF NOT EXISTS][workspace.lakehouse.schema].MLV_Identifier 
[( 
    CONSTRAINT constraint_name1 CHECK (condition expression1)[ON MISMATCH DROP | FAIL],  
    CONSTRAINT constraint_name2 CHECK (condition expression2)[ON MISMATCH DROP | FAIL] 
)] 
[PARTITIONED BY (col1, col2, ... )] 
[COMMENT "description or comment"] 
[TBLPROPERTIES ("key1"="val1", "key2"="val2", ... )] 
AS select_statement 

Arguments

매개 변수 설명
MLV_Identifier 구현된 호수 뷰의 이름입니다.
CONSTRAINT 데이터 품질 제약 조건을 정의한 다음 사용자 정의 이름을 정의하는 키워드입니다. 제약 조건은 구체화된 레이크 뷰 수준에서 적용됩니다.
CHECK 특정 열 값을 기반으로 조건을 적용하기 위한 매개 변수입니다. 제약 조건을 정의할 때 반드시 사용해야 합니다.
ON MISMATCH 제약 조건을 위반할 경우 수행할 작업을 지정하기 위한 매개 변수입니다. 가능한 작업은 다음과 같습니다 DROPFAIL. 기본적으로 이 절이 없으면 작업은 .입니다 FAIL.
PARTITIONED BY 지정된 열을 기반으로 파티션을 만들기 위한 매개 변수입니다.
TBLPROPERTIES 구체화된 레이크 뷰의 정의에 태그를 지정하기 위한 키/값 쌍 목록입니다.
COMMENT 구체화된 레이크 뷰를 설명하는 문입니다.
AS select_statement 문을 사용하여 SELECT 구체화된 레이크 뷰의 데이터를 채웁니다.

예시

다음 예제에서는 대체 구문을 사용하여 구체화된 레이크 뷰의 정의를 보여 줍니다.

CREATE OR REPLACE MATERIALIZED LAKE VIEW silver.customer_orders AS
SELECT 
    c.customerID,
    c.customerName,
    c.region,
    o.orderDate,
    o.orderAmount
FROM bronze.customers c INNER JOIN bronze.orders o
ON c.customerID = o.customerID

다음 예제에서는 테이블을 테이블과 customers_enriched 조인하여 명명 customers 된 구체화된 레이크 뷰의 orders 정의를 보여 줍니다.

CREATE MATERIALIZED LAKE VIEW IF NOT EXISTS silver.customers_enriched 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; 

비고

  • 작업 공간 이름에 공백이 포함되어 있으면 백틱(``)으로 묶으십시오. `My Workspace`.lakehouse.schema.view_name
  • 구현된 레이크 뷰 이름은 대소문자를 구분하지 않으며 소문자로 변환됩니다 (예: MyTestViewmytestview로 변환됩니다).

다음 예제에서는 열로 분할된 구체화된 customers_enriched 레이크 뷰를 city정의합니다.

CREATE MATERIALIZED LAKE VIEW IF NOT EXISTS silver.customers_enriched 
COMMENT "This is a sample materialized lake view" 
PARTITIONED BY (city)
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; 

구체화된 호수 전망 목록 가져오기

레이크하우스에서 구체화된 모든 호수 전망 목록을 가져오려면 다음 명령을 사용합니다.

SHOW MATERIALIZED LAKE VIEWS <IN/FROM> Schema_Name;

예제는 다음과 같습니다.

SHOW MATERIALIZED LAKE VIEWS IN silver;

구체화된 레이크 뷰를 만든 문을 검색합니다.

구체화된 CREATE 레이크 뷰에 대한 문을 얻으려면 다음 명령을 사용합니다.

SHOW CREATE MATERIALIZED LAKE VIEW MLV_Identifier;

예제는 다음과 같습니다.

SHOW CREATE MATERIALIZED LAKE VIEW customers_enriched;

구체화된 레이크 뷰 업데이트

구체화된 레이크 뷰의 정의를 업데이트하려면 삭제하고 다시 만들어야 합니다. 이 ALTER 문은 구체화된 레이크 뷰의 이름을 바꾸는 경우에만 지원됩니다.

ALTER MATERIALIZED LAKE VIEW MLV_Identifier RENAME TO MLV_Identifier_New;

예제는 다음과 같습니다.

ALTER MATERIALIZED LAKE VIEW customers_enriched RENAME TO customers_enriched_new;

구체화된 호수 전망 삭제

Lakehouse 개체 탐색기에서 삭제 옵션을 사용하거나 Notebook에서 다음 명령을 실행하여 구체화된 레이크 뷰를 삭제할 수 있습니다.

DROP MATERIALIZED LAKE VIEW MLV_Identifier;

예제는 다음과 같습니다.

DROP MATERIALIZED LAKE VIEW customers_enriched;

비고

구체화된 레이크 뷰를 삭제하거나 이름을 바꾸면 계보 보기 및 예약된 새로 고침에 영향을 줍니다. 모든 종속 구체화된 레이크 뷰에서 참조를 업데이트해야 합니다.

현재 제한 사항

  • 모든 대문자가 있는 스키마 이름은 지원되지 않습니다. 스키마 이름의 모든 대문자를 사용하지 않고 구체화된 레이크 뷰를 계속 만들 수 있습니다.
  • 세션 수준에서 설정된 Spark 속성은 예약된 계보 새로 고침 중에 적용되지 않습니다.
  • 델타 시간 이동으로 구체화된 레이크 뷰를 만드는 것은 지원되지 않습니다.
  • DML(데이터 조작 언어) 문은 구체화된 레이크 뷰에서 지원되지 않습니다.
  • CTAS(사용자 정의 함수 CREATE TABLE AS SELECT ) 문은 지원되지 않습니다.
  • 임시 뷰를 사용하여 구체화된 레이크 뷰를 정의할 수 없습니다.