Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Tabellformatet Lakehouse og Delta Lake er sentrale for Microsoft Fabric. Å holde Delta-tabeller optimalisert er nøkkelen til ytelse og kostnadseffektivitet for analysearbeidsbelastninger.
Denne artikkelen hjelper deg å bestemme når du skal bruke V-order og viser hovedkonfigurasjons- og vedlikeholdsmønstre for Delta-tabeller.
Bruk denne artikkelen til å:
- Forstå hva V-ordenen endrer seg og når det hjelper.
- Forstå hvordan Z-ordenen og V-ordenen utfyller hverandre.
- Velg riktig kontrollnivå: sesjon, tabellegenskap eller skriveoperasjon.
- Bruk vedlikeholdsmønstre for Delta-tabellen i riktig Spark-kjøretidskontekst.
For veiledning på tvers av arbeidsbelastninger om når V-ordre skal brukes basert på forbruksscenarier, se vedlikehold og optimalisering av kryssarbeidsbelastningstabeller.
Hva er V-orden?
V-order er en skrivetidsoptimalisering for Parquet-filer som kan forbedre nedstrøms spørringsytelse på tvers av Fabric-motorer.
Et overblikk:
- Hvor det hjelper mest: Lesetunge mønstre som dashbord, interaktiv analyse og gjentatte skanninger.
- Hvordan det hjelper: Reorganiserer Parquet-oppsettet (for eksempel radgruppefordeling, koding og komprimering) for å forbedre leseeffektiviteten.
- Typisk avveining: Skrivinger kan ta lengre tid (ofte rundt 15% i gjennomsnitt), mens lesinger kan bli betydelig bedre avhengig av arbeidsmengden.
- Motorkompatibilitet: Filene forblir åpen kildekode Parquet-kompatible, og Delta-funksjoner som Z-Order forblir kompatible.
- Omfang: V-rekkefølgen er på filnivå. Delta-operasjoner som komprimering, vakuum og tidsreiser kan brukes med den.
Kontroll-V-ordens skrivinger
V-ordenen brukes for å optimalisere Parquet-filoppsettet for raskere spørringsytelse, spesielt i scenarioer med mye lesing. I Fabric er V-order deaktivert som standard for alle nyopprettede arbeidsområder for å optimalisere ytelsen for skrivetunge dataingeniørarbeidsbelastninger.
V-ordens oppførsel i Apache Spark styres gjennom følgende konfigurasjoner:
| Konfigurasjon | Standardverdi | Bekrivelse |
|---|---|---|
spark.sql.parquet.vorder.default |
false |
Kontrollerer V-ordens skriving på øktnivå. Angis som false standard i nye Fabric-arbeidsområder. |
TBLPROPERTIES("delta.parquet.vorder.enabled") |
Fjern | Styrer standard V-ordensoppførsel på tabellnivå. |
Alternativet DataFrame-skriver: parquet.vorder.enabled |
Fjern | Brukes til å kontrollere V-ordenen på skriveoperasjonsnivå. |
Bruk følgende kommandoer for å aktivere eller overstyre V-ordens skriving etter behov for ditt scenario.
V-order er deaktivert som standard i nye Fabric-arbeidsområder (spark.sql.parquet.vorder.default=false) for å forbedre skriveytelsen for inntaks- og transformasjonspipelines.
For lesetunge arbeidsbelastninger som interaktive spørringer eller dashbord, aktiver V-orden ved å sette spark.sql.parquet.vorder.default til true. Du kan også bytte til readHeavyforSpark ressursprofiler som ReadHeavy automatisk aktiverer V-orden for lesefokusert ytelse.
I Fabric runtime 1.3 og senere er innstillingen spark.sql.parquet.vorder.enable fjernet. Fordi V-ordenen kan anvendes automatisk under Delta-optimalisering med OPTIMIZE, trenger du ikke denne eldre innstillingen. Hvis du migrerer fra tidligere runtime-versjoner, fjern denne innstillingen fra koden din.
Sjekk V-orden-konfigurasjon i Apache Spark-sesjonen
Bruk disse kommandoene for å bekrefte den nåværende sesjonsverdien før du endrer den.
%%sql
SET spark.sql.parquet.vorder.default
Deaktiver V-orden-skriving i Apache Spark-sesjonen
Bruk disse kommandoene når arbeidsmengden din er skrivetyngre og du ønsker raskere inntasting eller transformasjonsskriving.
%%sql
SET spark.sql.parquet.vorder.default=FALSE
Aktiver V-ordensskriving i Apache Spark-sesjon
Når du aktiverer V-orden på sesjonsnivå, bruker alle Parquet-skrivinger i den økten V-orden, inkludert ikke-Delta Parquet-tabeller og Delta-tabeller selv om parquet.vorder.enabled det eksplisitt er satt til false.
%%sql
SET spark.sql.parquet.vorder.default=TRUE
Kontroll V-orden ved bruk av egenskaper i Delta-tabellen
Denne seksjonen bruker kun Spark SQL fordi tabellegenskaper defineres gjennom SQL DDL og ALTER TABLE setninger.
Bruk tabellegenskaper når du vil ha en standard på tabellnivå som gjelder på tvers av økter.
Aktiver V-ordens tabellegenskap under tabellopprettelse:
%%sql
CREATE TABLE person (id INT, name STRING, age INT) USING parquet TBLPROPERTIES("delta.parquet.vorder.enabled" = "true");
Når tabellegenskapen settes til true, INSERT, , UPDATEog MERGE bruk V-orden ved skrivetid. Sesjonsnivå- og skrivenivåinnstillinger har fortsatt forrang, så skrivinger kan fortsatt bruke V-orden selv når TBLPROPERTIES er satt til false.
Aktiver eller deaktiver V-orden ved å endre tabellegenskapen:
%%sql
ALTER TABLE person SET TBLPROPERTIES("delta.parquet.vorder.enabled" = "true");
ALTER TABLE person SET TBLPROPERTIES("delta.parquet.vorder.enabled" = "false");
ALTER TABLE person UNSET TBLPROPERTIES("delta.parquet.vorder.enabled");
Etter at du aktiverer eller deaktiverer V-order ved hjelp av tabellegenskaper, er det kun fremtidige skrivinger til tabellen som påvirkes. Parquet-filer beholder rekkefølgen som ble brukt da den ble opprettet. For å endre den nåværende fysiske strukturen for å anvende eller fjerne V-orden, les Table Compaction.
Styring av V-ordenen direkte ved skriveoperasjoner
Denne delen bruker PySpark for å demonstrere DataFrame writer API. Det samme mønsteret er tilgjengelig i Scala DataFrame API-er med tilsvarende alternativer.
Bruk skrivenivå-alternativer når du trenger kontroll per operasjon i stedet for sesjons- eller tabellomfattende standardinnstillinger.
Alle Apache Spark-skrivekommandoer arver sesjonsinnstillingen når de ikke er eksplisitt overstyrt. Følgende eksempler skriver med V-orden ved å arve sesjonskonfigurasjonen.
df_source.write\
.format("delta")\
.mode("append")\
.saveAsTable("myschema.mytable")
DeltaTable.createOrReplace(spark)\
.addColumn("id","INT")\
.addColumn("firstName","STRING")\
.addColumn("middleName","STRING")\
.addColumn("lastName","STRING",comment="surname")\
.addColumn("birthDate","TIMESTAMP")\
.location("Files/people")\
.execute()
df_source.write\
.format("delta")\
.mode("overwrite")\
.option("replaceWhere","start_date >= '2025-01-01' AND end_date <= '2025-01-31'")\
.saveAsTable("myschema.mytable")
V-ordenen gjelder kun for filer som påvirkes av predikatet.
I en økt hvor spark.sql.parquet.vorder.default er usatt eller satt til false, skriver følgende kommandoer ved bruk av V-orden:
df_source.write\
.format("delta")\
.mode("overwrite")\
.option("replaceWhere","start_date >= '2025-01-01' AND end_date <= '2025-01-31'")\
.option("parquet.vorder.enabled","true")\
.saveAsTable("myschema.mytable")
DeltaTable.createOrReplace(spark)\
.addColumn("id","INT")\
.addColumn("firstName","STRING")\
.addColumn("middleName","STRING")\
.addColumn("lastName","STRING",comment="surname")\
.addColumn("birthDate","TIMESTAMP")\
.option("parquet.vorder.enabled","true")\
.location("Files/people")\
.execute()