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.
Sletningsvektorer lader Delta Lake markere individuelle rækker som slettede uden at omskrive hele Parquet-filen, der indeholder disse rækker. I Microsoft Fabric hjælper denne funktion dig med at håndtere rækkeniveau-ændringer mere effektivt, især når du arbejder med store Delta-tabeller.
I stedet for at erstatte en fuld datafil for en lille sletning eller opdatering, gemmer Delta Lake rader-niveau sletningsinformationen separat. Forespørgselsmotorer bruger derefter disse metadata til at ignorere de berørte rækker.
Hvad deletionsvektorer gør
En slettevektor er en ledsagerfil til en Delta-tabel datafil. Den registrerer, hvilke rækkepositioner i en Parquet-fil der ikke længere er gyldige.
Dette design muliggør soft delete på rækkeniveau for at muliggøre hurtigere opdateringer, sammenfletninger og sletninger:
- Den oprindelige Parquet-fil bliver stående.
- Delta skriver en lille slettevektorfil.
- Læserne springer de markerede rækker over ved forespørgselstidspunktet.
Da datafilen ikke behøver en øjeblikkelig omskrivning, er sletningsvektorer særligt nyttige, når en ændring påvirker en lille procentdel af dataene i en stor fil.
Hvordan sletningsvektorer fungerer
Når du kører DELETE, UPDATE, eller MERGE, identificerer Delta de rækker, der skal ændres.
Hvis sletningsvektorer er aktiveret, kan Delta registrere de berørte rækker i en sletningsvektor i stedet for straks at omskrive hele Parquet-filen.
Processen fungerer således:
- Delta finder de rækker i mål-Parquet-filen, som er slettet eller erstattet.
- Delta skriver en slettevektorfil, der markerer netop disse rækker som ugyldige.
- Den oprindelige Parquet-fil forbliver intakt i OneLake.
- Fabric-læsere konsulterer slettevektoren og springer de markerede rækker over under forespørgselskørsel.
For UPDATE og MERGEskriver Delta stadig nye rækker, når det er nødvendigt. Den største fordel er, at det kan undgå at omskrive uændrede rækker i den oprindelige fil.
Hvorfor sletningsvektorer hjælper
Sletningsvektorer forbedrer skriveeffektiviteten for arbejdsbelastninger med hyppige små rækkeniveauændringer.
De hjælper, fordi de:
- Gør ,
DELETE, ogUPDATEoperationer hurtigereMERGE, der berører relativt få rækker - Reducer skriveforstærkning, fordi Delta Lake ikke behøver at omskrive en hel Parquet-fil for hver lille ændring
- Lavere I/O for store filer, når kun et lille delmængde af rækker ændrer sig
Denne adfærd passer ofte godt til langsomt skiftende dimensioner, upsert-rørledninger, oprydningsopgaver og driftstabeller, der ofte bliver rettet.
Aktivér sletningsvektorer
Bemærkning
Sletningsvektorer er aktiveret som standard fra Fabric Spark runtime 2.0 (Delta 4.1).
Du kan aktivere slettevektorer på tabelniveau ved at sætte Delta-tabelegenskaben.
CREATE TABLE sales.orders (
order_id BIGINT,
customer_id BIGINT,
order_status STRING,
order_date DATE
)
USING DELTA
TBLPROPERTIES ('delta.enableDeletionVectors' = true)
Du kan også aktivere sletningsvektorer på en eksisterende tabel.
ALTER TABLE sales.orders
SET TBLPROPERTIES ('delta.enableDeletionVectors' = true)
Aktivér sletningsvektorer for alle nye tabeller i en session
For at aktivere sletningsvektorer som standard for hver ny tabel oprettet under en Spark-session, sæt sessionsniveau-konfigurationen:
Enhver tabel, der oprettes efter denne indstilling er anvendt, har sletningsvektorer aktiveret uden at skulle specificere tabelegenskaben individuelt.
Forstå præstationskompromiserne
Slettevektorer gør som regel skrivninger hurtigere, men de medfører en afvejning mellem læsetid.
Skrivepræstation
Skrivninger er ofte hurtigere, fordi Delta Lake kan undgå en fuld filomskrivning, når kun få rækker ændres.
Læs optræden
Læsninger kan have mindre overhead, fordi motoren skal tjekke deletion vector-metadata og springe ugyldige rækker over, mens datafiler scannes.
For mange arbejdsbelastninger er den overhead lille sammenlignet med skrivebesparelsen. Men hvis sletningsvektorer akkumuleres over tid, kan de ekstra metadata-kontroller sænke læsningerne.
Brug REORG PURGE til at fjerne akkumulerede deletionsvektorer
OPTIMIZE Renser automatisk filer, hvor mere end 5% poster refereres til via sletningsvektorer, så rutinekomprimering håndterer typisk oprydning af sletningsvektorer uden et separat trin.
Brug REORG TABLE ... APPLY (PURGE) den, når du har brug for eksplicit kontrol over, hvornår soft-slettede rækker fysisk fjernes – for eksempel for at opfylde overholdelses- eller GDPR-krav, eller for at tvinge til at fjerne filer, der ligger under 5%-grænsen, der OPTIMIZE anvendes.
PURGE omskriver de berørte datafiler, fjerner de blødt slettede rækker fra de aktive Parquet-filer og eliminerer sletningsvektorfilerne for de omskrevne filer.
Kør, PURGE når du har et specifikt behov for at tvinge fjernelse af blødt slettede rækker under 5%-grænsen, eller når overholdelseskrav kræver fysisk fjernelse på en defineret tidsplan. For de fleste arbejdsbelastninger OPTIMIZE håndterer den automatisk oprydning af sletningsvektorer tilstrækkeligt.
Sammenlign REORG, OPTIMIZE og VACUUM
Disse kommandoer arbejder sammen, men de udfører forskellige opgaver.
OMORGANISERINGSTABEL ... ANSØG (RENSNING)
REORG TABLE ... APPLY (PURGE) omskriver berørte filer og fjerner fysisk rækker, der tidligere kun blev blødslettet.
OPTIMERE
OPTIMIZE Komprimerer små filer for at forbedre scanningseffektiviteten. Den fjerner også automatisk filer, hvor mere end 5% poster refereres til via sletningsvektorer. Den adfærd gør OPTIMIZE den primære vedligeholdelseskommando for de fleste deletion vector-oprydninger.
VAKUUM
VACUUM Fjerner urefererede filer, der er ældre end retentionsgrænsen. Den oprydning kan inkludere sletningsvektorfiler, efter at andre operationer gør dem forældede.
Et almindeligt mønster er:
- Brug sletningsvektorer for at gøre rækkeniveau-skrivninger effektive.
- Kør
OPTIMIZEregelmæssigt for at komprimere filer og automatisk fjerne sletningsvektorer over 5% tærsklen. - Kør
REORG TABLE ... APPLY (PURGE)kun, når du skal tvinge soft deletes under den grænse eller for overholdelse. - Kør
VACUUMsenere for at fjerne urefererede filer, der er forbi retention.
Tjek protokol-kompatibilitet
Sletningsvektorer kræver Delta reader version 3 og writer version 7.
Når du aktiverer sletningsvektorer på en tabel, kan ældre læsere, der ikke understøtter sletningsvektorer, ikke læse tabellen korrekt. Før du aktiverer funktionen bredt, skal du sikre dig, at hver engine og runtime, der læser tabellen, understøtter den krævede Delta-protokol.
Du kan inspicere protokolrelaterede metadata ved at bruge kommandoer som DESCRIBE DETAIL og ved at gennemgå tabellens egenskaber i Delta-loggen.
Følg bedste fremgangsmåder
- Aktivér sletningsvektorer for tabeller, der ofte har små sletninger, opdateringer eller sammenfletninger.
-
OPTIMIZERenser automatisk filer med mere end 5% poster, der refereres til via sletningsvektorer, så et separatPURGEtrin er unødvendigt. - Brug
REORG TABLE ... APPLY (PURGE)kun, når du har brug for eksplicit kontrol, såsom overholdelseskrav eller force-purging under 5% grænsen. - Brug
VACUUMden kun til at rydde op i forældede slettevektorfiler, når de er blevet urefererede og ældre end retention threshold. - Bekræft, at alle læsere understøtter læser version 3 og Writer version 7, eller v2 checkpoint-protokollen, før du aktiverer sletningsvektorer på delte tabeller.