Vedligeholdelse og optimering af tværarbejdstavler i Microsoft Fabric

Delta-tabeller i Microsoft Fabric kan levere Spark, SQL analytics endpoint, Power BI Direct Lake, Warehouse og andre Fabric-oplevelser fra data lagret i OneLake. Optimal ydeevne på tværs af arbejdsbelastninger afhænger af to faktorer:

  • Den arbejdsbyrde, der skaber og vedligeholder bordet.
  • Motorerne, der forbruger bordet.

Lakehouse-tabeller administreres ofte af Spark, Fabric pipeline Copy activity eller Dataflow Gen2. Spark er den mest almindelige forfatter og tilbyder det bredeste layout og vedligeholdelseskontroller. Lager- og database-spejling styrer deres fysiske layout automatisk. Spejlede kataloger bevarer layoutet, der administreres i kildesystemet. Forbrugerkravene er generelt kompatible, men Power BI Direct Lake har yderligere lagringskrav for optimal ydeevne.

Brug én delt tabel, når dens krav er kompatible. For undtagelser, der retfærdiggør en anden tabel, se Hvornår for at oprette en anden tabel.

Forstå ejerskab af layoutet

Start med at identificere, hvilken arbejdsbyrde der ejer det fysiske bordlayout. Kontrollerne i den følgende tabel er de vigtigste kontroller, der er relevante for tværarbejdstabellayout og vedligeholdelse, ikke en udtømmende liste over hver lokomotivs kapaciteter.

Datalager Skrive- eller indtagelsesmetode Layout og vedligeholdelsesejerskab Hovedkontroller
Lakehouse Spark Brugerstyret Filstørrelse: adaptiv filstørrelse for mål og filniveau kompaktionsmål.
Skriv og vedligeholdelse: sletningsvektorer, automatisk komprimering, optimere skrivning, OPTIMIZE, og VACUUM.
Dataorganisering: væskeklyngedannelse, partitionering, Z-orden og V-orden.
Lakehouse Fabric pipeline Copy activity eller Dataflow Gen2 Tjenesten skriver dataene; Søhusets ejer vedligeholder bordet Destinationsspecifikke skriveindstillinger. Kør kompatibel vedligeholdelse separat ved at bruge Spark, Lakehouse vedligeholdelse eller en rørledningsvedligeholdelsesaktivitet.
Lagersted Fabric data warehouse, Fabric pipeline Copy activity eller Dataflow Gen2 Lagerstyret Dataklynge og lagerniveauets V-Order-indstilling.
Spejlet genstand Spejlingstjeneste Det afhænger af spejlingstypen Databasespejling bruger et systemstyret V-Ordered Delta-layout uden direkte layoutkontroller. Spejlede kataloger bevarer kildefillayoutet, som du kan optimere i kildesystemet, når det understøttes.

Tværarbejdsbelastningsvejledning

Følgende tabel opsummerer den anbefalede tilgang fra producent og forbruger.

Producer Forbruger Anbefalet fremgangsmåde
Lakehouse: Spark-forfatter Spark Brug Fabric Spark runtime 2.0 eller nyere standardindstillinger og aktiver automatisk komprimering. Overvej væskeklyngedannelse, når målte prædikater drager fordel af forbedret filspring.
Lakehouse: Spark-forfatter SQL Analytics-slutpunkt Brug det samme layout, der anbefales til Spark. Sæt ikke en statisk målfilstørrelse, vilkårlig rækkebegrænsning eller V-Order udelukkende for SQL-analyse-endpoints ydeevne.
Lakehouse: Spark-forfatter Power BI Direct Lake Brug det samme layout, der anbefales til Spark, og aktiver desuden V-Order, eller brug readHeavyForPBI ressourceprofilen.
Lakehouse: Fabric pipeline eller Dataflow Gen2 writer Spark, SQL analytics endpoint eller Power BI Direct Lake Overvåg det resulterende fillayout og planlæg vedligeholdelse af søhusene separat. Nogle destinationstilstande, såsom Dataflow Gen2 inkrementel opdatering, pålægger vedligeholdelsesbegrænsninger.
Lagersted Fabric data warehouse eller Spark Brug det systemstyrede layout. Fabric data warehouse håndterer automatisk kompaktering og andet vedligeholdelse. Brug dataklynge for at forbedre filspring for arbejdsbelastninger med tilbagevendende selektive prædikater.
Lagersted Power BI Direct Lake Behold standardindstillingen Warehouse V-Order. Brug dataklynge, når det gavner delte forespørgselsmønstre.
Mirroring Spark, SQL analytics endpoint eller Power BI Direct Lake Til databasespejling bruges det systemstyrede V-Ordered Delta-layout. For spejlede kataloger optimeres de underliggende filer i kildesystemet, når de understøttes. Se Hvad er Spejling i Fabric?.

Optimer Lakehouse-tabeller

Lakehouse Delta-tabeller kræver en eksplicit vedligeholdelsesstrategi, uanset om Spark, Pipeline Copy activity eller Dataflow Gen2 skriver dem. Spark er det primære eksempel i denne sektion, fordi det giver den bredeste layout- og vedligeholdelseskontrol i Fabric.

Vigtigt!

Tabelvedligeholdelse er afgørende for optimal skrive- og læseydelse på tværs af motorer. Selv append-only arbejdsbelastninger, der i starten fungerer godt uden vedligeholdelse, kan akkumulere overdreven små filer, hvilket påvirker Spark, SQL analytics endpoint, Direct Lake og eksterne datalæsere. Se Compacting Delta-tabeller for automatiske og manuelle komprimeringsmetoder.

Brug Spark runtime-standarderne

Når Spark skriver tabellen, brug Fabric Spark runtime 2.0 eller nyere standardindstillinger:

  • Hav adaptiv målfilstørrelse aktiveret. Den vælger automatisk et mål for hver tabel fra 128 MB til 1 GB.
  • Hold filniveau-kompaktionsmål aktiveret for at undgå at omskrive filer, der opfyldte et tidligere adaptivt mål.
  • Hold sletningsvektorer aktiveret .
  • Pålæg ikke et vilkårligt maksimalt antal rækker pr. fil. Rækkebredden varierer, så en rækkebegrænsning kan skabe for små filer til smalle tabeller.

I Fabric Spark runtime 1.3 er adaptiv målfilstørrelse, filniveau-komprimeringsmål og sletningsvektorer tilgængelige som opt-in indstillinger.

Når Pipeline Copy activity eller Dataflow Gen2 skriver tabellen, skal det resulterende fillayout og planlægges vedligeholdelse separat. Antag ikke, at disse forfattere anvender Spark runtime-standarder.

Vigtigt!

Dataflow Gen2 lakehouse-destinationer, der bruger inkrementel opdatering, understøtter OPTIMIZE ikke eller REORG TABLE. Følg Dataflow Gen2 begrænsninger for inkrementelle opdateringer.

Forebyg og komprimer små filer

For Spark-skrevne tabeller foretrækker du automatisk komprimering. Denne funktion evaluerer tabelfragmentering efter skrivning og kører kompaktering kun, når det er nødvendigt. Det eliminerer behovet for en separat tabel-sundhedskontrol før vedligeholdelseskørslen.

Brug følgende vejledning for undtagelser og supplerende funktioner:

scenarie Anbefalet fremgangsmåde
Gnistskrevet tabel Aktivér automatisk komprimering som standard vedligeholdelsesstrategi.
Streaming eller microbatch-skrivning Aktivér automatisk komprimering og optimer skrivningen for at reducere ophobning af små filer.
Arbejdsbelastninger med strenge krav til skrive-latens Planlæg OPTIMIZE separat i stedet for at køre synkron automatisk komprimering.
Eksisterende tabel med akkumulerede små filer Kør en engangs OPTIMIZE, og aktiver derefter automatisk komprimering til løbende vedligeholdelse.
Tabeller med hyppige opdateringer, sletninger eller sammenfletninger Hold sletningsvektorer og automatisk komprimering aktiveret.

OPTIMIZE komprimerer filer og renser automatisk en fils sletningsvektorer, når mere end 5% af dens poster refereres til med sletningsvektorer. REORG TABLE ... APPLY (PURGE) Brug kun, når du fysisk skal rense journaler under denne grænse eller opfylde et specifikt overholdelseskrav.

Bemærkning

Automatisk komprimering fjerner kun sletningsvektorer , når partitionen også opfylder sin lillefil-trigger. Hvis en arbejdsbelastning udfører opdateringer eller sletninger uden at generere små filer, skal du periodisk køre OPTIMIZE for at rense kvalificerende sletningsvektorer. Brug REORG TABLE ... APPLY (PURGE) den, når du skal tvinge en fysisk udrensning.

Kør VACUUM på en separat tidsplan for at fjerne urefererede filer efter opbevaringsperioden. VACUUM Genererer lagerplads, men forbedrer ikke den aktive fillayout.

Advarsel!

Forkort ikke opbevaringsperioden VACUUM uden at vurdere tidsrejsekrav og samtidige læsere eller forfattere. At fjerne filer for tidligt kan gøre nødvendige tabelversioner utilgængelige.

Organiser data til filspring

Brug væskeklyngedannelse, når tilbagevendende filter- eller behandlingsmønstre drager fordel af forbedret filspring. Flydende klyngetabeller kræver OPTIMIZEautomatisk komprimering for at organisere nyskrevne data.

Undgå at partitionere som standard. Brug det, når et specifikt krav retfærdiggør de operationelle afvejninger, såsom at isolere samtidige skrivere, der opdaterer, sletter eller sammenlægger data på tværs af adskilte partitioner. For mere information, se Hvornår man skal bruge partitionering.

For eksisterende opdelte tabeller betragtes Z-orden , når selektive prædikater ofte filtreres på de samme kolonner inden for en partition.

Optimer lagerstyrede tabeller

Fabric data warehouse håndterer den fysiske Delta-tabelopsætning uanset indlæsningsmetoden.

Brug de strategiske kontroller, som Warehouse eksponerer, til at finjustere datalayoutet:

  • Anvend dataklyngning på store tabeller, når forespørgsler gentagne gange bruger selektive prædikater på de samme kolonner.
  • Hold V-Order aktiveret til læseorienterede og blandede arbejdsbyrder. V-Order er aktiveret som standard.
  • Overvej at deaktivere V-Order for skriveintensive lagerarbejdsbyrder.

Advarsel!

At deaktivere V-Order er en lagerniveau, irreversibel operation. Test hele læse- og skrivearbejdsbyrden, før du deaktiverer den.

For fuldstændig vejledning om lageret, se Performance-retningslinjer i Fabric data warehouse.

Optimer spejlede data

Din evne til at forbedre det fysiske layout afhænger af, om Fabric replikerer dataene eller refererer til kildefiler:

  • Databasespejling: Fabric replikerer kildedata i Delta-tabeller i OneLake og administrerer V-Ordered fillayout og vedligeholdelse. Du kan ikke direkte konfigurere målfilstørrelse, oprydning af deletion-vektorer, væskeklyngedannelse, partitionering eller V-Order på den spejlede destination.
  • Spejlede kataloger: Fabric synkroniserer metadata og bruger OneLake-genveje til at referere kildedata på stedet. Fabric omskriver eller vedligeholder ikke disse filer. Forbedre det fysiske layout og oprydning i kildesystemet, når dets understøttede funktioner tillader det. Disse ændringer er synlige gennem genvejene uden at oprette en ny kopi i Fabric.

For database-spejlede data:

  • Brug selektive prædikater og undgå unødvendige kolonner i Spark og SQL-forespørgsler.
  • Design Power BI semantiske modeller og DAX-målinger for effektivt Direct Lake-forbrug.

For spejlede kataloger:

  • Brug kildeplatformens understøttede tabelvedligeholdelses- og layoutfunktioner.
  • Evaluer kildefil- og rækkegruppefordelingen for de Fabric-forbrugere, der forespørger genvejene.
  • For Direct Lake bør du vurdere at skabe et ekstra dimensionelt modelleret, V-ordnet serveringslag, når kildelayoutet ikke kan opfylde ydelseskravene.

For spejling af koncepter, typer og understøttede kilder, se Hvad er spejling i Fabric? og Hvordan metadata-spejling fungerer.

Anvend forbrugerspecifik optimering

Spark og SQL analytics-endpointet fungerer godt på det samme adaptive lakehouse-layout. Brug adaptiv målfilstørrelse, undgå for små filer, og anvend flydende klyngedannelse, når målte prædikater drager fordel af forbedret filspring. Aktiver ikke V-Order udelukkende for Spark eller SQL analytics endpoints ydeevne. For engine-specifikke detaljer, se SQL analytics endpoint performance considerations.

Power BI Direct Lake

Direct Lake bruger de samme underliggende Delta-tabeller, men tilføjer anbefalinger vedrørende transkodning og inkrementel indramning:

Bemærkning

Direct Lake klarer sig generelt bedst med rækkegrupper mellem 1 million og 16 millioner rækker. Evaluer rækkegruppefordeling og Direct Lake-ydelse, før du ændrer en understøttet producentindstilling.

For Spark-skrevne tabeller fastsættes det maksimale antal rækker pr. rækkegruppe, spark.sql.parquet.native.writer.maxRowGroupRowCount når den native eksekveringsmotor skriver Parquet-filerne. Standardværdien er 0, hvilket ikke pålægger et maksimum. Hvis analysen viser, at rækkegruppestørrelser påvirker Direct Lakes ydeevne, skal en testet grænse blive sat, før tabellen skrives eller omskrives. Eksempel:

spark.conf.set("spark.sql.parquet.native.writer.maxRowGroupRowCount", 8_000_000)

Sæt ikke grænsen kun for at nå et bestemt antal rækker. Rækkebredde, komprimering, filfordeling og kapacitetsparallelisme påvirker også ydeevnen. Brug Delta Analyzer til at evaluere det resulterende layout.

For detaljeret vejledning om indramning, transkodning, rækkegrupper, opdateringsmønstre og Delta Analyzer, se Forstå Direct Lake-forespørgselsydelse.

Anvend vejledningen på medaljonlagene

Bronze, sølv og guld beskriver dataens formål og forfinelse. De afgør ikke, om layoutet er brugerstyret eller systemstyret, og de kræver ikke separate kopier for hver forbruger.

Lag Primært mål Tværarbejdsbelastningsvejledning
Bronze (landing) Bevar kildetroværdighed og indtagelsesgennemstrømning Prioritér skrivegennemstrømning, mens du vedligeholder Spark-skrevne tabeller med automatisk komprimering. Undgå Power BI Direct Lake semantiske modeller på rå Bronze-tabeller, medmindre modellen og dataformen bevidst er designet til det formål.
Sølv (kurateret) Levere validerede, konforme data til genbrug Genanvend bordet hos kompatible Fabric-forbrugere. For Spark-skrevne lakehouse-tabeller skal V-Order kun aktiveres, når Direct Lake er primær forbruger.
Guld (servering) Servér forretningsklare dimensioner, fakta, aggregater og analysemodeller Foretrækker dette lag til Direct Lake semantiske modeller. Genanvend tabellen på tværs af kompatible forbrugere og anvend de producentspecifikke kontroller, der er beskrevet i denne artikel.

Løs layout- og vedligeholdelsesproblemer

Brug producentbevidst afhjælpning. Anvend Spark-vedligeholdelseskommandoer på lakehouse-tabeller, når destinationstilstanden understøtter disse operationer. Behandl signalerne som indikatorer frem for universelle tærskler, og valider dem mod tabellens skrivemønster og forbrugerpræstation.

Betingelse Signal Lakehouse-tabel Lagerbord
Overdreven små filer Filantallet stiger hurtigere end den aktive tabelstørrelse, og filerne forbliver under det adaptive mål. Med Spark kører du en engangs-test OPTIMIZE for den eksisterende backlog, og aktiverer derefter automatisk komprimering. For Pipeline Copy activity eller Dataflow Gen2-skrivninger, planlæg understøttet lakehouse-vedligeholdelse separat. Ingen handling. Lagerkomprimering sker automatisk.
Ældre overdimensionerede filer Filer forbliver meget højere end det nuværende adaptive mål, og for få filer begrænser scanningsparallelliteten. Omskriv tabellen ved at bruge en overskrivning eller CREATE OR REPLACE TABLE AS SELECT med adaptiv målfilstørrelse aktiveret. Ingen handling. Warehouse styrer automatisk filstørrelsen.
Deletionsvektorakkumulering DESCRIBE HISTORY Målinger viser, at sletningsvektorer tilføjes eller opdateres hurtigere, end komprimering fjerner dem, hvilket potentielt øger læseomkostningerne. Hold automatisk komprimering aktiveret. Hvis sletningsvektorer akkumuleres uden at udløse kompaktering af små filer, planlægges OPTIMIZE. Brug REORG TABLE ... APPLY (PURGE) kun til eksplicitte udrensningskrav. Ingen handling. Oprydningen er systemstyret.
Dårlig filspring Selektive prædikater scanner en stor del af tabellen, eller klyngekvalitetsevaluering viser dårlig organisering. Med Spark kan du konfigurere væskeklyngedannelse eller bruge Z-Order for en eksisterende opdelt tabel. Konfigurér Warehouse-dataklynge.
Direct Lake transkodningsoverhead Delta Analyzer viser overdrevne filer, små rækkegrupper eller bred omkodning efter opdateringer. Kompakt små filer, gennemgå rækkegrupper og anvend V-Order på Spark-skrevne tabeller. Eventuelt kan du konfigurere væskeklyngedannelse for at forbedre kompressionskvaliteten i Parquet-filer. Hold V-Order aktiveret og evaluer dataklyngedannelse.
Vækst i urefereret fillagring OneLake-lagring vokser hurtigere end den aktive tabelstørrelse efter dataændrende operationer. Kør VACUUM i henhold til fastholdelseskravene. Ingen handling. Oprydningen er systemstyret.

For spejlede data, følg producent-specifik udrensning i Optimer spejlede data. Databasespejling er systemstyret; For spejlede kataloger anvendes understøttet vedligeholdelse i kildeplatformen.

For lakehouse-borde omfatter Spark-understøttede inspektionsmuligheder:

  • Kør DESCRIBE DETAIL for at inspicere filantal, total størrelse og den vurderede delta.targetFileSize.adaptive egenskab.
  • Kør DESCRIBE HISTORY for at gennemgå skrivemønstre og vedligeholdelseshistorik.
  • Brug Delta Analyzer , når du har brug for detaljeret Direct Lake rækkegruppe- og opdateringsmønsteranalyse.

Inspicer gennemsnitlig filstørrelse

Brug DESCRIBE DETAIL til at beregne den gennemsnitlige filstørrelse som en indledende indikator for tabellayoutet:

details = spark.sql("DESCRIBE DETAIL schema_name.table_name").first()

table_size_gb = details["sizeInBytes"] / (1024**3)
num_files = details["numFiles"]
avg_file_size_mb = (
    details["sizeInBytes"] / num_files / (1024**2)
    if num_files
    else 0
)

print(f"Table size: {table_size_gb:.2f} GB")
print(f"Number of files: {num_files}")
print(f"Average file size: {avg_file_size_mb:.2f} MB")

Et gennemsnit kan skjule skævhed mellem partitioner eller nylige og tidligere komprimerede filer. Hvis gennemsnittet indikerer et muligt layoutproblem, inspiceres de enkelte Parquet-filer eller brug Delta Analyzer til at evaluere fordelingen, før vedligeholdelsesindstillingerne ændres.

Hvornår skal der oprettes en ny tabel

Opret ikke endnu en fysisk tabel udelukkende fordi flere Fabric-motorer forbruger dataene.

Opret en anden tabel, når den har et selvstændigt formål, såsom:

  • En transformation eller aggregation, der ændrer datakornet eller forretningsbetydningen.
  • Forskellige krav til sikkerhed, opbevaring eller datakvalitet.
  • Et krav om latenstid eller opdatering, som den delte tabel ikke kan opfylde.
  • Et forbrugerspecifikt layout, hvis målte fordel opvejer dets lager-, behandlings-, oprindelses- og styringsomkostninger.