Dela via


Spark SQL-referens för materialiserade sjövyer

I den här artikeln får du lära dig mer om Spark SQL-syntaxen för aktiviteter relaterade till materialiserade sjövyer i Microsoft Fabric.

Skapa en materialiserad sjövy

Du kan definiera en materialiserad sjövy från valfri tabell eller från en annan materialiserad sjövy i ett sjöhus. Följande kod beskriver syntaxen för att deklarera en materialiserad sjövy med hjälp av 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

Parameter Beskrivning
MLV_Identifier Namnet på den materialiserade sjövyn.
CONSTRAINT Nyckelord för att definiera en datakvalitetsbegränsning följt av ett användardefinierat namn. Villkoret gäller på nivån för den materialiserade sjövyn.
CHECK Parameter för att framtvinga ett villkor baserat på vissa kolumnvärden. Obligatoriskt att använda när du definierar villkor.
ON MISMATCH Parameter för att ange vilken åtgärd som ska vidtas om begränsningen överträds. Möjliga åtgärder är DROP och FAIL. Utan den här satsen är FAILåtgärden som standard .
PARTITIONED BY Parameter för att skapa partitioner baserat på den angivna kolumnen.
TBLPROPERTIES Lista över nyckel/värde-par för taggning av definitionen av den materialiserade sjövyn.
COMMENT Instruktion för att beskriva den materialiserade sjövyn.
AS select_statement Fråga för att fylla i data i den materialiserade sjövyn med hjälp av en SELECT -instruktion.

Examples

I följande exempel visas definitionen av en materialiserad sjövy med namnet customers_enriched genom att ansluta en customers tabell till en orders tabell:

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; 

I följande exempel definieras en materialiserad sjövy med namnet customers_enriched, partitionerad av city kolumnen:

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; 

Hämta en lista över materialiserade sjövyer

Använd följande kommando för att hämta listan över alla materialiserade sjövyer i ett sjöhus:

SHOW MATERIALIZED LAKE VIEWS <IN/FROM> Schema_Name;

Här är ett exempel:

SHOW MATERIALIZED LAKE VIEWS IN silver;

Hämta instruktionen som skapade en materialiserad sjövy

Använd följande kommando för att hämta instruktionen CREATE för en materialiserad sjövy:

SHOW CREATE MATERIALIZED LAKE VIEW MLV_Identifier;

Här är ett exempel:

SHOW CREATE MATERIALIZED LAKE VIEW customers_enriched;

Uppdatera en materialiserad sjövy

Om du vill uppdatera definitionen av en materialiserad sjövy måste du släppa den och återskapa den. Instruktionen ALTER stöds endast för att byta namn på en materialiserad sjövy.

ALTER MATERIALIZED LAKE VIEW MLV_Identifier RENAME TO MLV_Identifier_New;

Här är ett exempel:

ALTER MATERIALIZED LAKE VIEW customers_enriched RENAME TO customers_enriched_new;

Släpp en projicerad sjövy

Du kan släppa en materialiserad sjövy med hjälp av alternativet Ta bort i lakehouse-objektutforskaren eller genom att köra följande kommando i notebook-filen:

DROP MATERIALIZED LAKE VIEW MLV_Identifier;

Här är ett exempel:

DROP MATERIALIZED LAKE VIEW customers_enriched;

Anmärkning

Att ta bort eller byta namn på en materialiserad sjövyvy påverkar härkomstvyn och den schemalagda uppdateringen. Se till att uppdatera referensen i alla beroende materialiserade sjövyer.

Aktuella begränsningar

  • Schemanamn med alla versaler stöds inte. Du kan fortsätta att skapa materialiserade sjövyer utan att använda alla versaler i schemanamnet.
  • Spark-egenskaper som anges på sessionsnivå tillämpas inte under en schemalagd ursprungsuppdatering.
  • Det går inte att skapa en materialiserad sjövy med deltatidsresor.
  • DML-instruktioner (Data Manipulation Language) stöds inte med materialiserade sjövyer.
  • Användardefinierade funktioner i CREATE TABLE AS SELECT (CTAS)-instruktioner stöds inte.
  • Du kan inte använda tillfälliga vyer för att definiera materialiserade sjövyer.