Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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
MyTestViewwordtmytestview)
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 SELECTCTAS-instructies worden niet ondersteund. - U kunt geen tijdelijke weergaven gebruiken om gerealiseerde lakeweergaven te definiëren.