Del via


Optimal opfriskning til materialiseret søudsigt i et søhus

Hver gang en planlagt opdatering kører for dine materialiserede søudsigter, bestemmer Fabric den bedste strategi at bruge – ingen opdatering, inkrementell eller fuld – baseret på, hvad der er ændret i kildedataene. Denne adfærd kaldes optimal opdatering, og den hjælper dig med at holde dine materialiserede søudsigter opdaterede, samtidig med at du minimerer beregningsomkostninger og opdateringstid.

Denne artikel forklarer, hvordan optimal opdatering fungerer, hvad hver strategi gør, og hvordan man skifter til fuld opdateringstilstand, når det er nødvendigt.

Notat

Optimal opdatering understøttes ikke i følgende scenarier:

  • PySpark-definitioner: Optimal opdatering gælder kun for MLV'er defineret med Spark SQL. PySpark-definerede MLV'er bruger altid fuld opdatering.
  • Ikke-Delta kildetabeller: Materialiserede søvisninger, der bruger ikke-Delta-tabeller som kilde, udfører altid en fuld opdatering. Inkrementelle og ikke-opdaterings-strategier kræver Delta-tabellkilder.

Fordele ved optimal opdatering

Ved at analysere delta-commits på kildetabeller kan optimal opdatering træffe kloge beslutninger om, hvordan dine data skal behandles. Hvor det er muligt, kan dette resultere i:

  • Lavere omkostninger: Der bruges mindre compute og lagerplads, når Fabric opdager, at kildedata ikke er ændret, og springer opdateringen helt over. Der pålægges ingen ekstra gebyrer for optimal opdatering – du bliver faktureret baseret på computerforbrug under opdateringsoperationer.
  • Forbedret effektivitet: Hurtigere opdateringscyklusser, når kun ændrede data skal behandles, hvilket hjælper dig med at levere friskere indsigter.
  • Tidsbesparelse: Reduceret opdateringsvarighed, når inkrementel behandling anvendes i stedet for at genberegne hele datasættet.

Optimale opdateringsstrategier

Følgende tabel beskriver de opdateringsstrategier, som optimal refresh kan vælge:

Opdater politik Beskrivelse
Ingen opdatering Hvis der ikke opdages nye delta-commits på kildetabellerne, springer Fabric opdateringen helt over og undgår unødig beregning.
Trinvis opdatering Behandler kun de ændrede data, når nye delta-commits opdages på kildetabellerne.
Fuld opdatering Genberegner hele den materialiserede søudsigt fra hele kildedatasættet. Denne strategi bruges, når ikke-understøttede udtryk opdages, når ændringer ikke kan behandles inkrementelt, eller når kildedatasættet er så lille, at en fuld genberegning er hurtigere end inkrementel behandling.

Vigtigt

Inkrementel opdatering kræver delta change data feed (CDF)-egenskaben (delta.enableChangeDataFeed=true) på alle kildetabeller, der refereres til i den materialiserede lake view-definition. Uden CDF aktiveret kan optimal opdatering kun vælge mellem ingen opdatering og fuld opdatering. For mere information, se Aktivér inkrementel opdatering.

Opsæt optimal opdatering

Den optimale opdaterings-knap giver dig strategier uden opdatering og fuld opdatering uden ekstra opsætning. For at låse op for inkrementel opdateringsstrategi skal du også aktivere change data-feed på dine kildetabeller.

Tænd for optimal opdateringstilstand

Som standard er optimal opdateringstilstand aktiveret for en materialiseret søudsigtslinje. Hvis det ikke er aktiveret, følg disse trin for at tænde det:

  1. Gå til dit sommerhus og vælg Materialiserede søudsigter.

  2. Vælg Administrér, og vælg derefter Optimal opdateringsknappen for at tænde den.

    Skærmbillede, der viser skift for at aktivere optimal opdateringstilstand.

Aktiver inkrementel opdatering

For at bruge inkrementel opdatering skal du aktivere delta change data feed (CDF)-egenskaben på alle kildetabeller eller materialiserede søvisninger, der refereres til i den materialiserede søvisningsdefinition. CDF lader Fabric kun læse de rækker, der er ændret siden sidste opdatering, i stedet for at genbehandle hele datasættet.

Uden CDF aktiveret kan optimal opdatering kun vælge mellem ingen opdatering og fuld opdatering.

Trinvis opdatering understøttes for data, der kun er tilføjet. Hvis kildedataene indeholder sletninger eller opdateringer, udfører Fabric en fuld opdatering.

Notat

Aktivering af CDF på dine kildetabeller har ingen målbar lager- eller ydelseseffekt for append-only arbejdsbelastninger, hvilket er det scenarie, som inkrementel opdatering understøtter. CDF er en standard Delta Lake-bordegenskab, som andre Fabric-funktioner også kan drage fordel af. For mere information om, hvordan CDF fungerer, se Use Delta Lake change datafeed.

Du kan aktivere CDF ved oprettelsen ved at inkludere TBLPROPERTIES i erklæringen CREATE :

CREATE OR REPLACE MATERIALIZED LAKE VIEW silver.cleaned_order_data
TBLPROPERTIES (delta.enableChangeDataFeed=true)
AS
SELECT 
    o.order_id,
    o.order_date,
    o.product_id,
    p.product_name,
    o.quantity,
    p.price,
    o.quantity * p.price AS revenue
FROM bronze.orders o
INNER JOIN bronze.products p
ON o.product_id = p.product_id

For eksisterende kildetabeller bruges ALTER TABLE til at aktivere CDF:

ALTER TABLE <table-name> SET TBLPROPERTIES (delta.enableChangeDataFeed = true);

For eksempel for at aktivere CDF på begge kildetabeller fra startvejledningen:

ALTER TABLE bronze.products SET TBLPROPERTIES (delta.enableChangeDataFeed = true);
ALTER TABLE bronze.orders SET TBLPROPERTIES (delta.enableChangeDataFeed = true);

SQL-konstruktioner understøttet af inkrementel opdatering

Inkrementel opdatering virker, når din materialiserede lake view-definition kun bruger de SQL-konstruktioner, der er beskrevet her. Hvis din forespørgsel indeholder uunderstøttede konstruktioner – såsom vinduesfunktioner eller ikke-deterministiske funktioner – opdaterer Fabric stadig dine data, men falder tilbage til en fuld opdatering.

SQL-konstruktion Bemærkning
SELECT-udtryk Deterministiske indbyggede funktioner og udtryk understøttes. Understøttes ikke til inkrementel opdatering: aggregatfunktioner (SUM(), COUNT(), AVG(), MIN(), MAX(), , STDDEV()osv.), GROUP BY, DISTINCT, vinduesfunktioner og ikke-deterministiske funktioner såsom rand(), uuid(), current_timestamp().
FROM Understøtter delta-tabeller og materialiserede søudsigter. Subforespørgsler og CTE'er virker, hvis de kun bruger de understøttede klausuler.
WHERE Kun deterministiske indbyggede funktioner understøttes.
INDVENDIG SAMMENFØJNING Understøttes.
VENSTRE YDRE SAMLING / VENSTRE SEMI-SAMLING Understøttes. Inkrementel opdatering virker kun, hvis tabellen til højre forbliver uændret under opdateringscyklussen. Enhver ændring i tabellen til højre udløser en fuld opdatering.
UNION ALLE Understøttes.
WITH Common table expressions (CTE'er), hvis de kun bruger understøttede klausuler.
Underforespørgsler i udtryk Delforespørgsler inden for SELECT- eller WHERE-udtryk (såsom skalar-underforespørgsler eller EXISTS) udløser en fuld opdatering, hvis en refereret tabel har ændringer.
Begrænsninger for datakvalitet Kun deterministiske indbyggede funktioner understøttes i begrænsninger.

Notat

At bruge uunderstøttede konstruktioner forhindrer dig ikke i at skabe en materialiseret søudsigt. Det betyder kun, at Fabric bruger en fuld opdatering i stedet for en inkrementel opdatering.

Fuld opdatering

Optimal opdatering falder automatisk tilbage til fuld opdatering, når det er nødvendigt, så du behøver normalt ikke tvinge det. Der er dog tilfælde, hvor du måske vil udløse en fuld opdatering manuelt – for eksempel for at fejlfinde uventede resultater eller for at genbehandle data efter en rettelse.

Kør en engangs fuld opdatering med SQL

For at tvinge en fuld opdatering af et specifikt materialiseret sø-view, skal du køre følgende kommando:

REFRESH MATERIALIZED LAKE VIEW [workspace.lakehouse.schema].MLV_Identifier FULL

Notat

Hvis dit arbejdsområdenavn indeholder mellemrum, indheg det i backticks: `My Workspace`.lakehouse.schema.view_name

Slå optimal opdatering fra

Hvis du vil have, at hver planlagt gennemførsel skal udføre en fuld opdatering, kan du slå den optimale opdaterings-knappe fra. Dette deaktiverer både strategierne uden opdatering og inkrementelle strategier – hver kørsel genberegner hele datasættet, selvom ingen kildedata er ændret.

  1. Gå til dit sommerhus og vælg Materialiserede søudsigter.

  2. Klik på Administrer og slå Optimal opdateringsknappen fra.

    Skærmbillede, der viser skift til fuld opdateringstilstand.