Työkuormataulukon ylläpito ja optimointi Microsoft Fabric -ohjelmassa

Microsoft Fabric -delta-taulukot voivat palvella Sparkia, SQL-analytiikkapäätepisteitä, Power BI Direct Lakea, Warehousea ja muita Fabric-kokemuksia OneLakeen tallennetuista tiedoista. Optimaalinen ristiinkuorman suorituskyky riippuu kahdesta tekijästä:

  • Työkuorma, joka luo ja ylläpitää taulukkoa.
  • Moottorit, jotka kuluttavat pöytää.

Lakehouse-taulukoita hallinnoivat yleisesti Spark, Fabric pipeline Copy activity tai Dataflow Gen2. Spark on yleisin kirjoittaja ja tarjoaa laajimmat asettelu- ja ylläpitokontrollit. Varasto- ja tietokantapeilaus hallitsee fyysisiä asettelujaan automaattisesti. Peilatut luettelot säilyttävät lähdejärjestelmässä hallinnoiman asettelun. Kuluttajavaatimukset ovat yleensä yhteensopivia, mutta Power BI Direct Lake tarjoaa lisätallennusvaatimuksia optimaalisen suorituskyvyn takaamiseksi.

Käytä yhtä jaettua taulukkoa aina, kun sen vaatimukset ovat yhteensopivia. Poikkeuksista, jotka oikeuttavat toisen taulun, katso Milloin luoda toinen taulukko.

Ymmärrä layout-omistus

Aloita tunnistamalla, mikä työkuorma omistaa fyysisen taulukon asettelun. Seuraavan taulukon ohjaimet ovat keskeisiä ohjaimia, jotka liittyvät työkuormataulukon asetteluun ja huoltoon, eivät tyhjentävää luetteloa kunkin moottorin ominaisuuksista.

Tietosäilö Kirjoittaja- tai nielemismenetelmä Rakenteen ja ylläpidon omistus Avainohjausobjektit
Lakehouse Spark Käyttäjän hallinnoima Tiedoston koko:adaptiivinen kohdetiedostokoko ja tiedostotason tiivistymistavoitteet.
Kirjoitus ja ylläpito: poistovektorit, automaattinen tiivistyminen, kirjoituksen optimointi, OPTIMIZE, ja VACUUM.
Datan järjestäminen: nesteklusterointi, osiointi, Z-järjestys ja V-järjestys.
Lakehouse Fabric pipeline Copy activity tai Dataflow Gen2 Palvelu kirjoittaa tiedot; järvenomistaja huolehtii pöydästä Kohdekohtaiset kirjoitusasetukset. Suorita yhteensopiva huolto erikseen käyttämällä Spark-, Lakehouse-huolto- tai putkistohuoltoa.
Varasto Fabric tietovarasto, Fabric pipeline Copy activity tai Dataflow Gen2 Varaston hallinnoima Datan klusterointi ja varastotason V-Order -asetus.
Peilituote Peilauspalvelu Riippuu peilaustyypistä Tietokannan peilaus käyttää järjestelmän hallinnoimaa V-järjestettyä Delta-asettelua ilman suoria asettelukontrollia. Peilatut luettelot säilyttävät lähdetiedostoasettelun, jota voit optimoida lähdejärjestelmässä, kun sitä tuetaan.

Ristiinkuorman ohjaus

Seuraava taulukko tiivistää tuottajan ja kuluttajan suositellun lähestymistavan.

Tuottaja Kuluttaja Suositeltu lähestymistapa
Lakehouse: Spark-kirjoittaja Spark Käytä Fabric Spark Runtime 2.0 tai uudempia oletuksia ja ota automaattinen tiivistys käyttöön. Harkitse nestemäistä klusterointia , kun mitatut predikaatit hyötyvät parannetusta tiedostojen ohittamisesta.
Lakehouse: Spark-kirjoittaja SQL-analytiikan päätepiste Käytä samaa asettelua kuin Sparkille. Älä aseta staattista kohdetiedostokokoa, mielivaltaista rivirajoitusta tai V-järjestystä pelkästään SQL-analytiikan päätepisteen suorituskyvyn vuoksi.
Lakehouse: Spark-kirjoittaja Power BI Direct Lake Käytä samaa asettelua kuin Sparkille ja ota lisäksi käyttöön V-Order tai readHeavyForPBI käytä resurssiprofiilia.
Lakehouse: Fabric-putki tai Dataflow Gen2 -kirjoittaja Spark, SQL analytiikan päätepiste tai Power BI Direct Lake Seuraa syntyvää tiedostoasettelua ja aikatauluta yhteensopiva järvimajan huolto erikseen. Jotkut kohdetilat, kuten Dataflow Gen2 inkrementaalinen päivitys, asettavat ylläpitorajoituksia.
Varasto Fabric tietovarasto tai Spark Käytä järjestelmäohjattua asettelua. Fabric tietovarasto hallinnoi automaattisesti tiivistämistä ja muuta huoltoa. Käytä datan klusterointia tiedostojen ohittamisen parantamiseen työkuormissa, joissa on toistuvia valikoivia predikaatteja.
Varasto Power BI Direct Lake Pidä oletusasetuksena Varasto V-tilaus. Käytä datan klusterointia , kun se hyödyttää jaettuja kyselymalleja.
Mirroring Spark, SQL analytiikan päätepiste tai Power BI Direct Lake Tietokannan peilaamiseen käytetään järjestelmän hallinnoimaa V-järjestettyä Delta-asettelua. Peilatuissa luetteloissa optimoi lähdejärjestelmän taustalla olevat tiedostot, kun niitä tuetaan. Katso mitä on Mirroring in Fabric?.

Optimoi Lakehouse-taulukot

Lakehouse Delta -taulukot vaativat selkeän ylläpitostrategian riippumatta siitä, kirjoittaako ne Spark, Pipeline Copy activity vai Dataflow Gen2. Spark on tämän osion ensisijainen esimerkki, koska se tarjoaa laajimmat asettelun ja ylläpidon hallintajärjestelmät Fabric-ohjelmassa.

Tärkeää

Taulukon ylläpito on ratkaisevan tärkeää optimaalisen kirjoitus- ja lukusuorituskyvyn kannalta eri moottoreiden välillä. Jopa pelkästään liitännäiset työkuormat, jotka aluksi toimivat hyvin ilman ylläpitoa, voivat kerätä liikaa pieniä tiedostoja, jotka vaikuttavat Sparkiin, SQL-analytiikkapäätelaitteisiin, Direct Lakeen ja ulkoisiin datanlukijoihin. Katso Compacting Delta -taulukot automaattisista ja manuaalisista tiivistämismenetelmistä.

Käytä Sparkin ajonaikaisia oletuksia

Kun Spark kirjoittaa taulun, käytä Fabric Spark Runtime 2.0 tai uudempia oletusasetuksia:

  • Pidä adaptiivisen kohdetiedoston koko päällä. Se valitsee automaattisesti kohteen jokaiselle taulukolle 128 MB:sta 1 GB:iin.
  • Pidä tiedostotason tiivistyskohteet päällä, jotta tiedostojen uudelleenkirjoittaminen ei täyttyisi aiemmasta adaptaatiokohteesta.
  • Pidä poistovektorit päällä.
  • Älä pakota mielivaltaista maksimirivimäärää per tiedosto. Rivin leveys vaihtelee, joten rivirajoitus voi aiheuttaa liian pieniä tiedostoja kapeille taulukoille.

Fabric Spark -suoritusaikassa 1.3 mukautuva kohdetiedostokoko, tiedostotason tiivistymiskohteet ja poistovektorit ovat saatavilla valinnaisina asetuksina.

Kun Pipeline Copy activity tai Dataflow Gen2 kirjoittaa taulukon, tarkista tuloksena oleva tiedostoasettelu ja aikatauluta ylläpito erikseen. Älä oleta, että nämä kirjoittajat käyttävät Sparkin ajonaikaisia oletuksia.

Tärkeää

Dataflow Gen2 järventalokohteet, jotka käyttävät inkrementaalista päivitystä, eivät tue OPTIMIZE tai REORG TABLE. Noudata Dataflow Gen2:n inkrementaalisen päivitysrajoituksen.

Estä ja tiivistää pienet tiedostot

Spark-kirjoitetuissa taulukoissa suosi automaattista tiivistymistä. Tämä ominaisuus arvioi taulukon pirstoutumisen kirjoituksen jälkeen ja suorittaa tiivistämisen vain tarvittaessa. Se poistaa tarpeen erilliselle pöydän kuntotarkastukselle ennen huoltoa.

Käytä seuraavia ohjeita poikkeuksille ja täydentäville ominaisuuksille:

Esimerkkitilanne Suositeltu lähestymistapa
Spark-kirjoitettu taulukko Ota automaattinen tiivistäminen käyttöön oletushuoltostrategiana.
Suoratoisto- tai mikroeräkirjoitukset Ota automaattinen tiivistys käyttöön ja optimoi kirjoitus pienen tiedoston kertymisen vähentämiseksi.
Työkuormat, joissa on tiukat kirjoitusviivevaatimukset Aikatauluta OPTIMIZE erikseen sen sijaan, että ajaisit synkronista automaattista tiivistämistä.
Olemassa oleva taulukko, jossa on kertyneitä pieniä tiedostoja Suorita kertakäyttö OPTIMIZEja ota automaattinen tiivistys käyttöön jatkuvaa huoltoa varten.
Taulukot, joissa päivitetään, poistataan tai yhdistetään usein Pidä poistovektorit ja automaattinen tiivistyminen käytössä.

OPTIMIZE tiivistää tiedostot ja poistaa automaattisesti tiedoston poistovektorit, kun yli 5% sen tietueista viitataan poistovektoreilla. Käytä REORG TABLE ... APPLY (PURGE) sitä vain, kun sinun täytyy fyysisesti tyhjentää tietue, jotka ovat alle tämän kynnyksen, tai täyttää tietty vaatimustenmukaisuusvaatimus.

Note

Automaattinen tiivistys poistaa poistovektorit vain, kun osio täyttää myös pienen tiedoston laukaiseman. Jos työkuorma tekee päivityksiä tai poistaa tiedostoja ilman pieniä tiedostoja, suorita OPTIMIZE säännöllisesti poistaaksesi kelvolliset poistovektorit. Käytä REORG TABLE ... APPLY (PURGE) silloin, kun sinun täytyy pakottaa fyysinen puhdistus.

Suorita VACUUM erillisellä aikataululla poistaaksesi viittaamattomat tiedostot säilytysajan jälkeen. VACUUM palauttaa tallennustilan, mutta ei paranna aktiivista tiedostoasettelua.

Varoitus

Älä lyhennä VACUUM säilytysaikaa arvioimatta aikamatkustusvaatimuksia ja samanaikaisia lukijoita tai kirjoittajia. Tiedostojen liian aikainen poistaminen voi tehdä vaadituista taulukkoversioista käyttökelvottomia.

Järjestä data tiedostojen ohittamista varten

Käytä nestemäistä klusterointia toistuvien suodatin- tai käsittelymallien yhteydessä. Hyödy parannetusta tiedostojen ohittamisesta. Nestemäiset klusteroidut taulukot vaativat OPTIMIZEtai automaattisen tiivistyksen uusien tietojen järjestämiseen.

Vältä osiointia oletuksena. Käytä sitä, kun jokin erityinen vaatimus oikeuttaa toiminnalliset kompromissit, kuten eristämällä samanaikaiset kirjoittajat, jotka päivittävät, poistavat tai yhdistävät dataa erillisten osioiden välillä. Lisätietoja löytyy kohdasta Milloin käyttää osiointia.

Olemassa oleville ositetuille tauluille kannattaa tarkastella Z-järjestystä , kun valikoivat predikaatit yleensä suodattavat samoja sarakkeita osion sisällä.

Optimoi varaston hallinnoimat taulukot

Fabric tietovarasto hoitaa fyysisen Delta-taulukon asettelun riippumatta syöttötavasta.

Käytä Warehousen tarjoamia strategisia kontrolleja datan asettelun säätämiseen:

  • Sovella datan klusterointia suuriin tauluihin, kun kyselyt käyttävät toistuvasti valikoivia predikaatteja samoilla sarakkeilla.
  • Pidä V-Order käytössä lukupainotteisille ja sekakuormille. V-Order on oletuksena käytössä.
  • Harkitse V-Orderin poistamista käytöstä kirjoitusintensiivisille varastokuormille.

Varoitus

V-Orderin poistaminen käytöstä on varastotasoinen, peruuttamaton operaatio. Testaa koko luku- ja kirjoituskuorma ennen sen poistamista käytöstä.

Täydelliset varasto-ohjeet löytyvät Performance Guidelines in Fabric tietovarasto.

Peilatun datan optimointi

Kykysi parantaa fyysistä asettelua riippuu siitä, kopioiko Fabric datan vai viittaako lähdetiedostoihin:

  • Tietokannan peilaus: Fabric replikoi lähdetiedot Delta-tauluiksi OneLakessa ja hallinnoi V-Ordered-tiedostojen asettelun ja ylläpidon. Et voi suoraan määrittää kohdetiedoston kokoa, poistovektorin puhdistusta, nestemäistä klusterointia, osiointia tai V-järjestystä peilatussa kohteessa.
  • Peilatut katalogit: Fabric synkronoi metatiedot ja käyttää OneLake-pikakuvakkeita viitatakseen paikan päällä olevaan lähdedataan. Fabric ei kirjoita tai ylläpidä näitä tiedostoja uudelleen. Paranna lähdejärjestelmän fyysistä asettelua ja siivousta, kun sen tuetut ominaisuudet sen sallivat. Nämä muutokset näkyvät pikakuvakkeiden kautta ilman, että Fabric-versiossa syntyy uutta kopiota.

Tietokannan peilattua dataa:

  • Käytä valikoivia predikaatteja ja vältä tarpeettomia sarakkeita Spark- ja SQL-kyselyissä.
  • Suunnittele Power BI:n semanttisia malleja ja DAX-mittareita tehokkaaseen Direct Lake -kulutukseen.

Peilatut luettelot:

  • Käytä lähdealustan tukemia taulukkojen ylläpito- ja asetteluominaisuuksia.
  • Arvioi lähdetiedoston ja riviryhmäjakauman niille Fabric-kuluttajille, jotka kysyvät pikakuvakkeita.
  • Direct Lakessa arvioi lisädimensiomallinnuksen, V-järjestetyn palvelukerroksen luomista, kun lähderakenne ei täytä suorituskykyvaatimuksia.

Peilauskäsitteiden, tyyppien ja tuettujen lähteiden osalta katso What is Mirroring in Fabric? ja How metadata mirroring works.

Sovella kuluttajakohtaista optimointia

Spark- ja SQL-analytiikkapäätepisteet toimivat hyvin samalla adaptiivisella järvitalopohjaratkaisulla. Käytä adaptiivista kohdetiedostokokoa, vältä liialliset pienet tiedostot ja käytä nesteryhmittelyä , kun mitatut predikaatit hyötyvät parannetusta tiedostojen ohittamisesta. Älä ota V-Orderia käyttöön pelkästään Spark- tai SQL-analytiikan päätelaitteiden suorituskyvyn vuoksi. Moottorikohtaisia yksityiskohtia varten katso SQL Analytics Endpoint Performance Considerations.

Power BI Direct Lake

Direct Lake käyttää samoja taustalla olevia Delta-taulukoita, mutta lisää suosituksia transkoodaukseen ja inkrementaaliseen kehystämiseen:

  • Tiedosto- ja riviryhmäasettelu: Vältä pieniä riviryhmiä ja epätasaista riviryhmien jakautumista, sillä tämä luo enemmän VertiPaq-sarakesegmenttejä ja lisää transkoodauksen ylikuormitusta.
  • V-Järjestys: Noudata tuottajakohtaista suositusta ristiintyökuormaohjeistuksessa. Spark-kirjoitetuille tauluille, jotka kulutetaan pääasiassa Direct Laken kautta, ota V-Order käyttöön tai käytä readHeavyForPBI resurssiprofiilia.
  • Päivityskuviot: Suosi liiteystävällisiä päivitysmalleja mahdollisuuksien mukaan säilyttääksesi olemassa olevat Parquet-tiedostot ja tukeaksesi inkrementaalista kehystämistä.

Note

Direct Lake suoriutuu yleensä parhaiten, kun riviryhmät ovat 1 miljoonasta 16 miljoonaan. Arvioi riviryhmäjakauma ja Direct Lake -suorituskyky ennen tuetun tuottajan asetuksen muuttamista.

Spark-kirjoitetuissa taulukoissa spark.sql.parquet.native.writer.maxRowGroupRowCount asetetaan maksimirivit per riviryhmä, kun natiivisuoritusmoottori kirjoittaa Parquet-tiedostoja. Oletusarvo on 0, joka ei aseta maksimiarvoa. Jos analyysi osoittaa, että riviryhmäkokoisuus vaikuttaa Direct Laken suorituskykyyn, aseta testattu raja ennen taulukon kirjoittamista tai uudelleenkirjoittamista. Esimerkki:

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

Älä aseta rajaa pelkästään tietyn rivimäärän saavuttamiseksi. Rivin leveys, pakkaus, tiedostojen jakautuminen ja kapasiteetin rinnakkaisuus vaikuttavat myös suorituskykyyn. Käytä Delta-analysaattoria arvioidaksesi lopputuloksen asettelun.

Yksityiskohtaisia ohjeita kehystämiseen, transkoodaukseen, riviryhmiin, päivityskuvioihin ja Delta-analysaattoriin löytyy kohdasta Understand Direct Lake -kyselysuoritus.

Sovella ohjeita medallionkikerroksiin

Pronssi, hopea ja kulta kuvaavat datan tarkoitusta ja hienosäätöä. Ne eivät määritä, onko asettelu käyttäjän vai järjestelmän ylläpitämä, eivätkä vaadi erillisiä kopioita jokaiselle kuluttajalle.

Kerros Ensisijainen tavoite Ristiinkuorman ohjaus
Pronssi (laskeutuminen) Säilytä lähteen uskottavuus ja vastaanoton läpimenokyky Priorisoi kirjoitusläpimenoa samalla kun Sparkin laatimat taulukot ovat automaattisessa tiivistämisessä. Vältä Power BI Direct Lake -semanttisia malleja raakapronssitaulukoilla, ellei malli ja datan muoto ole tarkoituksella suunniteltu siihen tarkoitukseen.
Hopea (kuratoitu) Tarjoa validoituja, yhteensopivia tietoja uudelleenkäyttöä varten Käytä taulukkoa uudelleen yhteensopivissa Fabric-kuluttajissa. Sparkin kirjoittamille Lakehouse-taulukoille ota V-Order käyttöön vain, kun Direct Lake on ensisijainen käyttäjä.
Kulta (annos) Palvele liiketoimintavalmiita ulottuvuuksia, faktoja, aggregaatteja ja analytiikkamalleja Suosin tätä kerrosta Direct Lake -semanttisille malleille. Käytä taulukkoa uudelleen yhteensopivilla kuluttajilla ja sovella tässä artikkelissa kuvattuja tuottajakohtaisia rajoituksia.

Ratkaise pohjaratkaisu- ja huolto-ongelmat

Käytä tuottajatietoista puhdistusta. Sovella Sparkin ylläpitokomennot järvitalotauluihin, kun kohdetila tukee näitä toimintoja. Käsittele signaaleja indikaattoreina eikä universaaleina kynnysarvoina, ja validoi ne taulukon kirjoitusmallin ja kuluttajasuorituskyvyn mukaan.

Ehto Signaali Lakehouse-pöytä Varastopöytä
Liian pienet tiedostot Tiedostomäärä kasvaa nopeammin kuin aktiivinen taulukkokoko, ja tiedostot pysyvät adaptiivisen tavoitteen alapuolella. Sparkilla suorita kertakäyttö OPTIMIZE olemassa olevalle backlogille ja ota sitten automaattinen tiivistys käyttöön. Pipeline Copy activity- tai Dataflow Gen2 -kirjoituksia varten varaa tuettu lakehouse-ylläpito erikseen. Ei toimintaa. Varastotiivistyminen tapahtuu automaattisesti.
Perinnölliset ylisuuret tiedostot Tiedostot pysyvät paljon korkeammalla kuin nykyinen adaptiivinen kohde, ja liian vähän tiedostoja rajoittaa skannauksen rinnakkaisuutta. Kirjoita taulukko uudelleen käyttämällä ylikirjoitusta tai CREATE OR REPLACE TABLE AS SELECTadaptiivisen kohdetiedoston koon käyttöön. Ei toimintaa. Varasto hallinnoi tiedostokoon automaattisesti.
Deleetiovektorin kertymä DESCRIBE HISTORY Mittarit osoittavat, että poistovektoreita lisätään tai päivitetään nopeammin kuin tiivistäminen poistaa ne, mikä voi lisätä lukukulua. Pidä automaattinen tiivistyminen käytössä. Jos poistovektorit kasaantuvat ilman, että se laukaisee pienen tiedoston tiivistystä, aikatauluta OPTIMIZE. Käytä REORG TABLE ... APPLY (PURGE) vain nimenomaisiin puhdistusvaatimuksiin. Ei toimintaa. Siivous on järjestelmäohjattua.
Huono tiedostojen ohittaminen Valikoivat predikaatit skannaavat suuren osan taulukosta, tai klusterointilaadun arviointi osoittaa huonoa organisointia. Sparkilla voit konfiguroida nestemäistä klusterointia tai käyttää Z-järjestystä olemassa olevalle jaetulle taululle. Määritä varastodatan klusterointi.
Direct Lake -transkoodaus ylimääräistä Delta Analyzer näyttää liikaa tiedostoja, pieniä riviryhmiä tai laajaa uudelleensiirtoa päivitysten jälkeen. Tiivistää pienet tiedostot, tarkista riviryhmät ja sovella V-järjestystä Sparkin kirjoittamiin taulukoihin. Voit halutessasi konfiguroida nesteen klusteroinnin parantamaan pakkauslaatua Parquet-tiedostoissa. Pidä V-Order käytössä ja arvioi datan klusterointia.
Viitteettömän tiedostotallennuksen kasvu OneLake-tallennus kasvaa nopeammin kuin aktiivinen taulukkokoko datan muutosten jälkeen. Toimi VACUUM pysyvyysvaatimusten mukaisesti. Ei toimintaa. Siivous on järjestelmäohjattua.

Peilatun datan osalta noudata tuottajakohtaista korjausta Optimize peilattu data. Tietokannan peilaus on järjestelmähallintaa; Peilatuissa luetteloissa hyödynnä tuettu ylläpito lähdekoodialustalla.

Lakehouse-pöydissä Sparkin tukemat tarkastusvaihtoehdot ovat:

  • Tarkista DESCRIBE DETAIL tiedostomäärä, kokonaiskoko ja arvioitu delta.targetFileSize.adaptive ominaisuus.
  • Juokse DESCRIBE HISTORY tarkistamaan kirjoitusmallit ja huoltohistoria.
  • Käytä Delta Analyzeria , kun tarvitset yksityiskohtaista Direct Lake -riviryhmä- ja päivitysmallianalyysiä.

Tarkista keskimääräinen tiedostokoko

Käytä DESCRIBE DETAIL keskimääräisen tiedostokoon laskemiseen taulukon asettelun alkuindikaattorina:

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")

Keskiarvo voi piilottaa vinon osioiden tai tuoreiden ja aiemmin tiivistettyjen tiedostojen välillä. Jos keskiarvo viittaa mahdolliseen asetteluun liittyvään ongelmaan, tarkista yksittäiset Parquet-tiedostot tai käytä Delta Analyzeria jakauman arviointiin ennen huoltoasetusten muuttamista.

Milloin luoda uusi taulukko

Älä luo toista fyysistä taulukkoa pelkästään siksi, että useat Fabric-moottorit kuluttavat dataa.

Luo toinen taulukko, kun sillä on itsenäinen tarkoitus, kuten:

  • Muunnos tai aggregaatio, joka muuttaa datan jykeä tai liiketoimintamerkitystä.
  • Erilaiset tietoturva-, säilytys- tai tiedonlaadun vaatimukset.
  • Viive tai päivitysvaatimus, jota jaettu taulukko ei pysty täyttämään.
  • Kuluttajakohtainen rakenne, jonka mitattu hyöty ylittää sen varastointi-, käsittely-, linja- ja hallintakustannukset.