Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Denne artikel giver Spark SQL-syntaksen til oprettelse, liste, omdøbning og sletning af materialiserede lake-visninger i Microsoft Fabric.
Tips
For at skabe din første materialiserede søudsigt, se Kom i gang med materialiserede søudsigter.
Oprette en materialiseret søvisning
Du kan definere en materialiseret søvisning fra en hvilken som helst tabel eller fra en anden materialiseret søvisning i et søhus.
Syntaks
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
Notat
- Hvis dit arbejdsområdenavn indeholder mellemrum, indheg det i backticks:
`My Workspace`.lakehouse.schema.view_name - Materialiserede lake-view-navne er små bogstaver og konverteres til små bogstaver (for eksempel
MyTestViewbliver ).mytestview
Argumenter
| Parameter | Beskrivelse |
|---|---|
OR REPLACE |
Overskriver enhver eksisterende materialiseret søudsigt med samme navn. Kan ikke kombineres med IF NOT EXISTS. |
IF NOT EXISTS |
Skaber kun den materialiserede søudsigt, hvis den ikke allerede eksisterer. Udsagnet lykkes fejlfrit, hvis visningen allerede er defineret. Kan ikke kombineres med OR REPLACE. |
MLV_Identifier |
Navnet på den materialiserede søvisning. Kan være fuldt kvalificeret som workspace.lakehouse.schema.name. |
CONSTRAINT ... CHECK |
Definerer en datakvalitetsregel. Klausulen CHECK specificerer et boolesk udtryk, som hver række skal opfylde. Du kan definere flere begrænsninger. |
ON MISMATCH |
Handling at tage, når en række overtræder en begrænsning.
DROP fjerner lydløst rækken; FAIL Stopper opdateringen med en fejl. Standard er FAIL. |
PARTITIONED BY |
Kolonner til at opdele den materialiserede søvisning efter, hvilket kan forbedre forespørgselsydelsen for filtrerede læsninger. |
COMMENT |
Fritekstbeskrivelse gemt med den materialiserede søudsigtsdefinition. |
TBLPROPERTIES |
Nøgleværdipar gemt som metadata på den materialiserede søvisning. |
AS select_statement |
Forespørgslen SELECT , der definerer dataene i det materialiserede søvisning. |
Eksempler
Følgende eksempel skaber en materialiseret lake-visning med en datakvalitetsbegrænsning, en kommentar og partitionering. Klausulen OR REPLACE overskriver enhver eksisterende visning med samme navn.
CREATE OR REPLACE MATERIALIZED LAKE VIEW silver.cleaned_order_data
(
CONSTRAINT valid_quantity CHECK (quantity > 0) ON MISMATCH DROP
)
PARTITIONED BY (category)
COMMENT "Cleaned order data joined from products and orders"
AS SELECT
p.productID,
p.productName,
p.category,
o.orderDate,
o.quantity,
o.totalAmount
FROM bronze.products p INNER JOIN bronze.orders o
ON p.productID = o.productID
Følgende eksempel skaber et enklere materialiseret søbillede. Klausulen IF NOT EXISTS forhindrer fejl, hvis visningen allerede eksisterer, hvilket gør den sikker for deployment-scripts.
CREATE MATERIALIZED LAKE VIEW IF NOT EXISTS silver.products_with_sales AS
SELECT
p.productID,
p.productName,
p.category,
CASE
WHEN COUNT(o.orderID) OVER (PARTITION BY p.productID) > 0 THEN TRUE
ELSE FALSE
END AS has_sales
FROM bronze.products p LEFT JOIN bronze.orders o
ON p.productID = o.productID
Tips
Vedligehold materialiseret søudsigt fra dit søhus
Når du har skabt dine materialiserede søudsigter, skal du ikke orkestrere deres opdatering fra en notesbog. Brug i stedet de to indbyggede funktioner på søhuset:
- Lineage: Fabric udleder afhængighedsrækkefølgen mellem dine materialiserede søudsigter ud fra deres definitioner. For at åbne linjevisningen skal du vælge fanen Materialiserede søvisninger i båndet, og derefter vælge Styr. Derfra kan du følge et kørsel i gang og inspicere opstrøms og nedstrøms afhængigheder for hver visning.
- Planlagt opdatering: Fra samme Administrér-visning opret en eller flere tidsplaner for at opdatere alle materialiserede søudsigter eller et udvalgt delmængde. Hver tidsplan kører uafhængigt og opdaterer visninger i afhængighedsrækkefølge, så downstream-visninger læser altid friske data fra deres upstream-visninger. Fabric prøver at genoverveje forbigående fejl for dig.
Brug notesbøger til at skrive og iterere på dine materialiserede lake view-definitioner. Lad lineage og planlagt opdatering håndtere rækkefølge, udførelse og genforsøg — for pålidelige, gentagelige data med mindre kode at vedligeholde.
Få en liste over materialiserede søudsigter
For at få listen over alle materialiserede søudsigter i et skema, brug følgende syntaks:
SHOW MATERIALIZED LAKE VIEWS <IN/FROM> Schema_Name;
For eksempel for at liste alle materialiserede søudsigter i skemaet silver :
SHOW MATERIALIZED LAKE VIEWS IN silver;
Hente den sætning, der oprettede en materialiseret søvisning
For at få udsagnet CREATE for en materialiseret lake-visning, brug følgende syntaks:
SHOW CREATE MATERIALIZED LAKE VIEW MLV_Identifier;
For eksempel, for at hente definitionen af products_with_sales:
SHOW CREATE MATERIALIZED LAKE VIEW products_with_sales;
Opdater en materialiseret søvisning
For at ændre definitionen af en materialiseret søvisning (såsom SELECT forespørgslen, begrænsninger eller partitionering), brug kommandoen CREATE OR RESTORE. Alternativt kan du slette den eksisterende visning og genskabe den.
Omdøb en materialiseret søudsigt
For at omdøbe et eksisterende materialiseret søsyn, brug kommandoen ALTER MATERIALIZED LAKE VIEW . Syntaksen er:
ALTER MATERIALIZED LAKE VIEW MLV_Identifier RENAME TO MLV_Identifier_New;
For eksempel at omdøbe products_with_sales:
ALTER MATERIALIZED LAKE VIEW products_with_sales RENAME TO products_with_sales_v2;
Notat
Kommandoen ALTER MATERIALIZED LAKE VIEW understøttes kun til omdøbning. For at ændre definitionen eller andre egenskaber (såsom SELECT forespørgslen, begrænsninger eller opdeling), se Opdater en materialiseret søvisning.
Slet et materialiseret sø-view
Du kan slette en materialiseret søvisning ved at bruge Slet-muligheden i lakehouse-objektstifinderen eller ved at køre en DROP kommando. Syntaksen er:
DROP MATERIALIZED LAKE VIEW MLV_Identifier;
For eksempel for at slette products_with_sales:
DROP MATERIALIZED LAKE VIEW products_with_sales;
Notat
Hvis du slipper eller omdøber en materialiseret søvisning, påvirker det afstamningsvisningen og den planlagte opdatering. Sørg for at opdatere referencen i alle afhængige materialiserede søvisninger.
Aktuelle begrænsninger
Følgende begrænsninger gælder for Spark SQL-sætningerne for materialiserede søvisninger:
-
Skemanavne — Skemanavne med store bogstaver (for eksempel
MYSCHEMA) understøttes ikke. Brug blandede bogstaver eller små bogstaver. -
Ingen data manipulation language (DML) udsagn — Du kan ikke køre
INSERT,UPDATE, ellerDELETEudsagn mod en materialiseret lake view. Data udfyldes kun af forespørgslenSELECTi definitionen. -
Ingen tidsrejseforespørgsler — Forespørgslen
SELECTi en materialiseret lake view-definition kan ikke bruge Delta Lake tidsrejsesyntaks (for eksempel,VERSION AS OFellerTIMESTAMP AS OF). -
Ingen brugerdefinerede funktioner — Brugerdefinerede funktioner (UDF'er) understøttes ikke i forespørgslen,
SELECTder definerer en materialiseret lake-visning. -
Ingen midlertidige visninger som kilder — Forespørgslen
SELECTkan referere til tabeller og andre materialiserede søudsigter, men ikke midlertidige visninger. -
Sessionsniveau Spark-egenskaber — Spark-konfigurationsegenskaber sat på sessionsniveau (for eksempel
spark.conf.set(...)) anvendes ikke under en planlagt opdatering. Sæt ejendomme på søhus- eller arbejdsområdeniveau i stedet.