Delen via


Spark SQL-referentie voor gerealiseerde lakeweergaven

In dit artikel leert u meer over de Spark SQL-syntaxis voor activiteiten met betrekking tot gerealiseerde lake-weergaven in Microsoft Fabric.

Een gerealiseerde lakeweergave maken

U kunt een gerealiseerde meerweergave definiëren vanuit elke tabel of vanuit een andere gerealiseerde lakeweergave binnen een lakehouse. De volgende code bevat een overzicht van de syntaxis voor het declareren van een gerealiseerde lake-weergave met behulp van 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

Kenmerk Beschrijving
MLV_Identifier Naam van het gerealiseerde uitzicht op het meer.
CONSTRAINT Trefwoord voor het definiëren van een beperking voor gegevenskwaliteit, gevolgd door een door de gebruiker gedefinieerde naam. De beperking is van toepassing op het niveau van de gerealiseerde meerweergave.
CHECK Parameter voor het afdwingen van een voorwaarde op basis van bepaalde kolomwaarden. Verplicht om te gebruiken wanneer u een beperking definieert.
ON MISMATCH Parameter voor het opgeven van de actie die moet worden ondernomen als de beperking wordt geschonden. Mogelijke acties zijn DROP en FAIL. Standaard is FAILde actie zonder deze component.
PARTITIONED BY Parameter voor het maken van partities op basis van de opgegeven kolom.
TBLPROPERTIES Lijst met sleutel-waardeparen voor het taggen van de definitie van de gerealiseerde lakeweergave.
COMMENT Instructie om de gerealiseerde lake view te beschrijven.
AS select_statement Voer een query uit om de gegevens in de gerealiseerde lake-weergave te vullen met behulp van een SELECT instructie.

Voorbeelden

In het volgende voorbeeld ziet u de definitie van een gerealiseerde lake-weergave met behulp van vervangingssyntaxis.

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

In het volgende voorbeeld ziet u de definitie van een gerealiseerde lakeweergave met de naam customers_enriched door een customers tabel samen te voegen met een orders tabel:

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; 

Opmerking

  • Als de naam van uw werkruimte spaties bevat, plaatst u deze tussen backticks: `My Workspace`.lakehouse.schema.view_name
  • Gematerialiseerde namen van lakeweergaven zijn hoofdletterongevoelig en geconverteerd naar kleine letters (bijvoorbeeld MyTestView wordt mytestview)

In het volgende voorbeeld wordt een gerealiseerde lakeweergave gedefinieerd met de naam customers_enriched, gepartitioneerd door de city kolom:

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; 

Een lijst met gerealiseerde lakeweergaven ophalen

Gebruik de volgende opdracht om de lijst met alle gerealiseerde lakeweergaven in een lakehouse te verkrijgen:

SHOW MATERIALIZED LAKE VIEWS <IN/FROM> Schema_Name;

Hier is een voorbeeld:

SHOW MATERIALIZED LAKE VIEWS IN silver;

Haal de instructie op die een gerealiseerde lakeweergave heeft gemaakt

Gebruik de volgende opdracht om de CREATE instructie voor een gerealiseerde lake view op te halen:

SHOW CREATE MATERIALIZED LAKE VIEW MLV_Identifier;

Hier is een voorbeeld:

SHOW CREATE MATERIALIZED LAKE VIEW customers_enriched;

Een gerealiseerde lakeweergave bijwerken

Als u de definitie van een gerealiseerde lakeweergave wilt bijwerken, moet u deze verwijderen en opnieuw maken. De ALTER instructie wordt alleen ondersteund voor het wijzigen van de naam van een gerealiseerde meerweergave.

ALTER MATERIALIZED LAKE VIEW MLV_Identifier RENAME TO MLV_Identifier_New;

Hier is een voorbeeld:

ALTER MATERIALIZED LAKE VIEW customers_enriched RENAME TO customers_enriched_new;

Een gematerialiseerde weergave van een datameer verwijderen

U kunt een gerealiseerde lakeweergave verwijderen met behulp van de optie Verwijderen in de lakehouse-objectverkenner of door de volgende opdracht uit te voeren in het notebook:

DROP MATERIALIZED LAKE VIEW MLV_Identifier;

Hier is een voorbeeld:

DROP MATERIALIZED LAKE VIEW customers_enriched;

Opmerking

Het verwijderen of hernoemen van een gematerialiseerde lakeweergave is van invloed op de afstammingsweergave en geplande verversing. Zorg ervoor dat u de verwijzing bijwerkt in alle afhankelijke gerealiseerde lakeweergaven.

Huidige beperkingen

  • Schemanamen met alle hoofdletters worden niet ondersteund. U kunt gerealiseerde lakeweergaven blijven maken zonder alle hoofdletters in de schemanaam te gebruiken.
  • Spark-eigenschappen die zijn ingesteld op sessieniveau, worden niet toegepast tijdens een geplande vernieuwing van de herkomst.
  • Het maken van een gerealiseerde meerweergave met deltatijdreizen wordt niet ondersteund.
  • DML-instructies (Data Manipulation Language) worden niet ondersteund met gerealiseerde lake-weergaven.
  • Door de gebruiker gedefinieerde functies in CREATE TABLE AS SELECT CTAS-instructies worden niet ondersteund.
  • U kunt geen tijdelijke weergaven gebruiken om gerealiseerde lakeweergaven te definiëren.