Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Soveltaa:✅ SQL-analytiikkapäätepiste Microsoft Fabric
Tässä opetusohjelmassa opit, miten rakentaa Microsoft Fabric Pipeline älykästä taulukkoylläpitoa varten.
Tämä ratkaisu kutsuu Lakehousen SQL-analytiikkapäätepisteessä olevan sys.sp_get_table_health_metrics T-SQL-tallennetun proseduurin, arvioi tuloksen ja suorittaa OPTIMIZE vain, kun taulu tarvitsee ylläpitoa. Tämä "tarkista ja toimi" -malli estää tarpeettomat laskentakulut terveille tauluille ja varmistaa, että heikentyneet taulukot säilyvät automaattisesti.
Miksi ylläpito on välttämätöntä
Lakehouse-taulukot voivat ajan myötä kerätä liikaa pieniä Parquet-tiedostoja, mikä heikentää kyselyjen suorituskykyä SQL-analytiikan päätepisteessä.
Sen sijaan, että tämä putki toimisi OPTIMIZE kiinteällä aikataululla riippumatta taulun tilasta, se tekee tietoon perustuvan päätöksen: se tarkistaa ensin taulun kunnon ja käynnistää optimoinnin vain, kun poikkeama havaitaan.
Edellytykset
Ennen kuin aloitat, varmista, että sinulla on:
- Microsoft Fabric workspace jossa on avustajan tai korkeammat oikeudet.
- Lakehouse siinä työtilassa, jossa on vähintään yksi Delta-taulukko, jota haluat seurata. Tässä opetusohjelmassa käytetään Lakehousea nimeltä
SalesDataLakehouse. - Fabric-dataputkien tuntemus.
- Tuttuus Fabric-muistikirjoihin.
Ratkaisurakenne
Valmiin putkiston rakenne on seuraava:
-
Skriptitoiminta: Suoritetaan
sp_get_table_health_metricskohdetaulua vastaan ja palauttaa taulukon terveysmittarit rakenteellisina tuotoksina. -
If Condition -aktiviteetti: Lukee
PotentialAnomalyTypesuoraan Skriptin tulosteesta ja tarkistaa, onko se suurempi kuin nolla. LisätietojaPotentialAnomalyType, katso Mahdolliset anomaliatyyppikoodit. -
Muistikirjan toiminta ( True-haaran sisällä): Toimii
OPTIMIZEpöydällä Spark-muistikirjasta.
Tämän tutoriaalin lopussa sinulla on muistikirja, joka ottaa parametreja putkesta ja optimoi taulukon, kun se aktivoituu.
Vaihe 1: Luo optimointivihko
Muistikirja hyväksyy kohde-Lakehousen, skeeman ja taulun nimen parametreina putkesta ja suorittaa OPTIMIZE sitten Spark SQL:llä.
- Valitse Fabric-työtilassasi + Uusi esine>Notebook.
- Nimeä muistikirja Optimize-Table.
-
Sijainnista valitse Lakehouse, jossa tarkistamasi taulukot säilytetään. Tässä harjoituksessa käytetään Lakehousea nimeltä
SalesDataLakehouse. - Valitse Luo.
Lisää parametrisolu
Ensimmäinen solu määrittää muuttujat, jotka putki ohittaa ajonaikaisesti.
Ensimmäiseen soluun syötä seuraavat parametrit. Arvot eivät ole tärkeitä, ja putki ohittaa ne ajonaikaisesti.
# Parameters lakehouse_name = "<LakehouseName>" schema_name = "<SchemaName>" table_name = "<TableName>"Tärkeää
Miten parametrisointi toimii Fabric-muistikirjoissa: Ajonaikaisesti Fabric injektoi uuden solun heti parametrisolun jälkeen, joka uudelleenmäärittää nämä muuttujat putkiston välittämillä arvoilla. Tässä asettamasi arvot vain alusttavat muuttujat ja parantavat luettavuutta.
Valitse soluvalikko (...) >Vaihda parametrisolu merkitsemään tämä solu parametrisoluksi.
Lisää OPTIMAL-solu
Komento OPTIMIZE on Spark SQL -komento, ei T-SQL-komento. Sinun täytyy ajaa se Spark-ympäristöissä, kuten muistikirjoissa, Spark-tehtävämäärittelyissä tai Lakehouse Maintenance -käyttöliittymässä. SQL-analytiikan päätepiste ja Warehouse SQL -kyselyeditori eivät tue tätä komentoa suoraan.
Toisessa solussa syötetään:
full_name = f"{lakehouse_name}.{schema_name}.{table_name}" print(f"Optimizing {full_name} ...") result = spark.sql(f"OPTIMIZE {full_name}") result.show(truncate=False)Lisää Markdown-soluja tarpeen mukaan, jotta muistikirja dokumentoidaan oikein muille käyttäjille. Lopullisen muistikirjasi tulisi näyttää suunnilleen seuraavalta:
Muistio
Tässä esimerkissä tarkastellaan Lakehousea, jossa skeemat ovat käytössä. Säädä kolmiosaista nimeä full_name sen mukaan, jos et käytä Lakehouse-skeemoja.
Vaihe 2: Luo putki
Fabric-työtilassasi valitse + New item>Pipeline.
Nimeä putkiston tarkistus- ja optimointitaulukko.
Valitse putkiston kankaan tausta ja avaa sitten parametrit-välilehti. Lisää kolme parametria:
Nimi Tyyppi Oletusarvo lakehouse_nameMerkkijono SalesDataLakehouseschema_nameMerkkijono dbotable_nameMerkkijono FactSales
Vaihe 3: Lisää skriptitoiminto
Skriptitoiminto toimii sys.sp_get_table_health_metrics SQL-analytiikkapäätepisteellä ja tallentaa tuloksen.
Tärkeää
Käytä Script-toimintoa , älä Stored procedure -toimintoa. Vain Skripti-toiminto paljastaa tulosjoukon rakenteelliseksi JSON-tuotokseksi, jonka myöhemmät toiminnot voivat jäsentää.
- Toiminnot-välilehdeltä valitse Skripti lisätäksesi sen kankaalle.
- Nimeä se Check Table Health.
- Asetukset-välilehdellä:
Yhteys: Valitse SQL-analytiikkapäätepiste Lakehousellesi. Jos sitä ei ole listalla, valitse Selaa kaikki alareunasta ja etsi sitten Lakehousesi SQL-analytiikan päätepiste.
Skriptityyppi: Valitse Kysely.
Skripti: Valitse Lisää dynaamista sisältöä ja syötä seuraava lauseke:
@concat('EXEC sys.sp_get_table_health_metrics ''', pipeline().parameters.schema_name, '.', pipeline().parameters.table_name, '''')
Tämä lauseke tuottaa SQL-komennon, joka suorittaa tallennetun proseduurin kohdetaulua vastaan, esimerkiksi: EXEC sys.sp_get_table_health_metrics 'dbo.FactSales'.
Varmista skriptin tulos
Suorita putki kerran ja tarkista Script-aktiviteetti -tulos. Näet JSON-objektin, joka on samankaltainen:
{
"resultSetCount": 1,
"resultSets": [
{
"rowCount": 1,
"rows": [
{
"PotentialAnomalyType": 3,
"PotentialAnomalyDescription": "Too many small files...",
"FileCount": 2688,
"...": "..."
}
]
}
]
}
Tärkeää
Todellinen tuloksesi voi vaihdella pöytäsi tilan mukaan. Avain on, että se palauttaa sarakkeet, jotka on paljastettu sys.sp_get_table_health_metrics.
Vaihe 4: Lisää If Condition -aktiviteetti
If-ehto-toiminto lukee PotentialAnomalyType suoraan Script-toiminnon tuloksesta ja tekee päätöksen tuloksensa perusteella. Toimi seuraavasti:
Toiminnot-välilehdeltä valitse If Condition lisätäksesi aktiviteetin kankaalle.
Nimeä se Tarkista anomalia.
Piirrä onnistumisen (vihreä) nuoli Check Table Health -toiminnosta tarkistaaksesi poikkeaman.
If Condition -toiminnon Toiminnot-välilehdellä aseta lauseke muotoon:
@greater(int(activity('Check Table Health').output.resultSets[0].rows[0]['PotentialAnomalyType']), 0)
Tämä lauseke lukee ensimmäisen rivin, joka palautuu sys.sp_get_table_health_metrics, loitsee PotentialAnomalyType kokonaisluvuksi ja true arvioi, kun arvo on suurempi kuin nolla, mikä osoittaa kohdetaulukossa havaitun poikkeaman.
Vaihe 5: Lisää muistikirja-toiminto (True branch)
Kun If Condition -aktiviteetti on valittuna, valitse Muokkaa (kynäkuvake) True-kohdan vierestä. Kangas vaihtuu alikankaaksi, joka on sijoitettu True-haaraan .
Raahaa muistikirja-aktiviteetti True-alakankaalle.
Nimeä se Suorita OPTIMOI.
Asetukset-välilehdessä:
Muistikirja: Valitse Optimize-Table -muistikirja, jonka loit Step 1:ssä.
Laajenna perusparametrit ja lisää kolme riviä:
Nimi Tyyppi Arvo lakehouse_nameMerkkijono @pipeline().parameters.lakehouse_nameschema_nameMerkkijono @pipeline().parameters.schema_nametable_nameMerkkijono @pipeline().parameters.table_name
Kolmen nimisarakkeen arvon on täsmälleen vastattava muistikirjan parametrisolun muuttujien nimiä.
Muistio
Voit jättää väärät toiminnot tyhjiksi. If Condition -toiminto käsittelee tyhjää Väärää haaraa no-op ja raportoi putken onnistuneeksi.
Valmiin putkistosi tulisi näyttää seuraavalta:
Vaihe 6: Vahvista ja aja
Valitse putkityökalupalkista Validoi tarkistaaksesi konfiguraatiovirheet.
Valitse Suorita putki manuaalisesti.
Seuraa juoksua ja varmista:
-
Tarkista taulukon kunto: tarkista tämän toiminnon Output kun se käynnistyy. Sinun pitäisi nähdä tallennetun proseduurin tulos
sys.sp_get_table_health_metricsJSON-muodossa. -
Tarkista anomalia: arvioi oikein lukemalla
PotentialAnomalyTypesuoraan Skriptin tuloksesta. -
Suorita OPTIMIZE (vain jos):
PotentialAnomalyType > 0jos Check Anomalya -toiminto arvioi True:n, tarkista Run OPTIMIZE -toiminnon syöte varmistaaksesi, että se käyttää oikeita parametreja (Lakehousen nimi, skeema ja taulun nimi) ja tarkista tulos tarkistaaksesi operaation viestitOPTIMIZE.
-
Tarkista taulukon kunto: tarkista tämän toiminnon Output kun se käynnistyy. Sinun pitäisi nähdä tallennetun proseduurin tulos
Resurssien puhdistaminen
Jos loit resursseja vain tätä opetusta varten etkä enää tarvitse niitä, poista seuraavat kohteet työtilastasi:
- Check-and-Optimize-Table -putki.
- Optimize-Table -muistikirja.