Sdílet prostřednictvím


Referenční informace k Spark SQL pro materializovaná zobrazení lake

V tomto článku se dozvíte o syntaxi Spark SQL pro aktivity související s materializovanými zobrazeními jezera v Microsoft Fabric.

Vytvoření materializovaného zobrazení jezera

Můžete definovat materializované zobrazení jezera z libovolné tabulky nebo z jiného materializovaného zobrazení jezera v rámci jezera. Následující kód popisuje syntaxi pro deklarování materializovaného zobrazení lake pomocí Spark SQL:

CREATE 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

Parametr Popis
MLV_Identifier Název materializovaného zobrazení jezera.
CONSTRAINT Klíčové slovo pro definování omezení kvality dat následované uživatelem definovaným jménem. Omezení platí na úrovni materializovaného zobrazení jezera.
CHECK Parametr pro vynucování podmínky na základě určitých hodnot sloupců Je povinné použít při definování omezení.
ON MISMATCH Parametr pro zadání akce, která se má provést, pokud je omezení porušeno. Možné akce jsou DROP a FAIL. Ve výchozím nastavení bez této klauzule je FAILakce .
PARTITIONED BY Parametr pro vytváření oddílů na základě zadaného sloupce
TBLPROPERTIES Seznam párů klíč/hodnota pro označení definice materializovaného zobrazení jezera
COMMENT Příkaz k popisu materializovaného zobrazení jezera.
AS select_statement Dotaz na naplnění dat v zobrazení materializovaného jezera pomocí SELECT příkazu

Examples

Následující příklad znázorňuje definici materializovaného zobrazení jezera pojmenovaného customers_enriched spojením customers tabulky s tabulkou 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; 

Následující příklad definuje materializované zobrazení jezera s názvem customers_enriched, rozdělené podle city sloupce:

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; 

Získání seznamu materializovaných zobrazení jezera

Pokud chcete získat seznam všech materializovaných zobrazení jezera v jezeře, použijte následující příkaz:

SHOW MATERIALIZED LAKE VIEWS <IN/FROM> Schema_Name;

Tady je příklad:

SHOW MATERIALIZED LAKE VIEWS IN silver;

Načtení příkazu, který vytvořil materializované zobrazení jezera

Pokud chcete získat CREATE příkaz pro materializované zobrazení jezera, použijte následující příkaz:

SHOW CREATE MATERIALIZED LAKE VIEW MLV_Identifier;

Tady je příklad:

SHOW CREATE MATERIALIZED LAKE VIEW customers_enriched;

Aktualizace materializovaného zobrazení jezera

Pokud chcete aktualizovat definici materializovaného zobrazení jezera, musíte ji odstranit a znovu vytvořit. Tento ALTER příkaz se podporuje jenom pro přejmenování materializovaného zobrazení jezera.

ALTER MATERIALIZED LAKE VIEW MLV_Identifier RENAME TO MLV_Identifier_New;

Tady je příklad:

ALTER MATERIALIZED LAKE VIEW customers_enriched RENAME TO customers_enriched_new;

Zrušit materializované zobrazení jezera

Materializované zobrazení jezero můžete odstranit pomocí možnosti Odstranit v Průzkumníku objektů lakehouse nebo spuštěním následujícího příkazu v poznámkovém bloku:

DROP MATERIALIZED LAKE VIEW MLV_Identifier;

Tady je příklad:

DROP MATERIALIZED LAKE VIEW customers_enriched;

Poznámka:

Vyřazení nebo přejmenování materializovaného zobrazení jezera má vliv na zobrazení rodokmenu a plánovanou aktualizaci. Nezapomeňte aktualizovat odkaz ve všech závislých materializovaných zobrazeních jezera.

Aktuální omezení

  • Názvy schémat se všemi velkými písmeny se nepodporují. Můžete i nadále vytvářet materializovaná zobrazení jezera bez použití velkých písmen v názvu schématu.
  • Vlastnosti Sparku nastavené na úrovni relace se při plánované aktualizaci rodokmenu nepoužijí.
  • Vytvoření materializovaného zobrazení jezera s rozdílovým časovým cestováním se nepodporuje.
  • Příkazy jazyka DML (Data Manipulation Language) nejsou podporovány v zobrazení materializovaných jezer.
  • Uživatelem definované funkce v CREATE TABLE AS SELECT příkazech CTAS se nepodporují.
  • K definování materializovaných zobrazení jezero nemůžete použít dočasná zobrazení.