Lue semanttisista malleista ja kirjoita tietoja, joita Power BI voi käyttää Pythonilla
Tässä artikkelissa kerrotaan, miten voit lukea tietoja ja metatietoja ja arvioida semanttisten mallien mittareita Microsoft Fabricin SemPy python -kirjaston avulla. Opit myös kirjoittamaan tietoja, joita semanttiset mallit voivat käyttää.
Edellytykset
Hanki Microsoft Fabric -tilaus. Voit myös rekisteröityä ilmaiseen Microsoft Fabric -kokeiluversioon.
Siirry Synapse Data Science -käyttökokemukseen aloitussivun vasemmassa reunassa olevan käyttökokemuksen vaihtajan avulla.
- Tutustu Microsoft Fabricin datatieteen kokemukseen.
- Uuden muistikirjan luominen koodin kopioimiseksi ja liittämiseksi soluihin
- Spark 3.4:ssä ja tätä uudemmat versioissa semanttinen linkki on käytettävissä oletusarvoisessa suorituspalvelussa Fabricia käytettäessä, eikä sitä tarvitse asentaa. Jos käytät Spark 3.3:a tai uudempaa versiota tai haluat päivittää semanttisen linkin uusimpaan versioon, voit suorittaa komennon:
python %pip install -U semantic-link
- Lisää Lakehouse muistikirjaasi
- Lataa semanttinen Customer Profitability Sample.pbix -malli kangasmallisäilön tietojoukkokansiosta ja tallenna semanttinen malli paikallisesti.
Semanttisen mallin lataaminen työtilaan
Tässä artikkelissa käytetään asiakkaan tuottavuuden malli.pbix-semanttista mallia. Tämä semanttinen malli viittaa yritykseen, joka valmistaa markkinointimateriaaleja. Se sisältää eri liiketoimintayksiköiden tuote-, asiakas- ja vastaavat tuottotiedot.
- Työtilan avaaminen Fabric Data Science -toiminnossa
- Valitse Lataa > selaus ja valitse asiakkaan tuottavuuden malli.pbix semanttinen malli.
Kun lataus on valmis, työtilassasi on kolme uutta artefaktia: Power BI -raportti, koontinäyttö ja semanttinen malli, jonka nimi on Asiakkaan tuottavuuden malli. Tämän artikkelin vaiheet perustuvat tähän semanttiseen malliin.
Semanttisten mallien tietojen lukeminen Pythonilla
SemPy Python -ohjelmointirajapinta voi noutaa tietoja ja metatietoja Microsoft Fabric -työtilassa sijaitsevista semanttisista malleista. Ohjelmointirajapinta voi myös suorittaa kyselyitä niille.
Muistikirja, Power BI -tietojoukon semanttinen malli ja Lakehouse voivat sijaita samassa työtilassa tai eri työtiloissa. SemPy yrittää oletusarvoisesti käyttää semanttista malliasi seuraavasti:
- Lakehousen työtila, jos kiinnitit muistikirjaasi lakehousen.
- Muistikirjasi työtila, jos siihen ei ole kiinnitetty mitään.
Jos semanttinen mallisi ei sijaitse kummassakaan näistä työtiloista, sinun on määritettävä semanttisen mallin työtila, kun kutsut SemPy-menetelmää.
Tietojen lukeminen semanttisista malleista:
Luettele työtilassa käytettävissä olevat semanttiset mallit.
import sempy.fabric as fabric df_datasets = fabric.list_datasets() df_datasets
Luettele asiakkaan tuottavuuden mallin semanttisessa mallissa käytettävissä olevat taulukot.
df_tables = fabric.list_tables("Customer Profitability Sample", include_columns=True) df_tables
Luettele asiakkaan tuottavuuden mallissa määritetyt mittarit semanttisessa mallissa.
Vihje
Seuraavassa koodiesimerkissä määritimme SemPy:lle työtilan, jota käytetään semanttisen mallin käyttämiseen. Voit korvata sen
Your Workspace
työtilan nimellä, johon latasit semanttisen mallin (kohdasta Semanttisen mallin lataaminen työtilaan ).df_measures = fabric.list_measures("Customer Profitability Sample", workspace="Your Workspace") df_measures
Tässä määritettiin, että Customer-taulukko on kiinnostava taulukko.
Lue Asiakas-taulukko Asiakkaan tuottavuuden mallin semanttisesta mallista.
df_table = fabric.read_table("Customer Profitability Sample", "Customer") df_table
Muistiinpano
- Tiedot noudetaan XMLA:n avulla. Tämä edellyttää, että käytössä on vähintään XMLA:n vain luku -tila.
- Noudettavien tietojen määrää rajoittaa - enimmäismuisti per kysely kapasiteetti-SKU: lle, joka isännöi semanttista mallia - Spark-ohjainsolmu (katso lisätietoja solmun koosta ), joka suorittaa muistikirjan
- Kaikissa pyynnöissä pienen prioriteetin avulla voidaan minimoida vaikutus Microsoft Azure Analysis Services suorituskykyyn, ja niitä laskutetaan vuorovaikutteisena pyyntönä.
Arvioi jokaisen asiakkaan tilan ja päivämäärän Kokonaistuotto-mittari.
df_measure = fabric.evaluate_measure( "Customer Profitability Sample", "Total Revenue", ["'Customer'[State]", "Calendar[Date]"]) df_measure
Muistiinpano
- Oletusarvoisesti tietoja ei noudeta XMLA:n avulla, joten ne eivät vaadi XMLA:n vain luku -käyttöä.
- Power BI -taustarajoitukset eivät koske tietoja.
- Noudettavien tietojen määrää rajoittaa - enimmäismuisti kapasiteetti-SKU:n kyselyä kohden, joka isännöi semanttista mallia - Spark-ohjainsolmu (katso lisätietoja solmuko'ista ), joka suorittaa muistikirjan
- Kaikkia pyyntöjä laskutetaan vuorovaikutteisena pyyntönä
Jos haluat lisätä suodattimia mittayksikön laskentaan, määritä tietyn sarakkeen sallittujen arvojen luettelo.
filters = { "State[Region]": ["East", "Central"], "State[State]": ["FLORIDA", "NEW YORK"] } df_measure = fabric.evaluate_measure( "Customer Profitability Sample", "Total Revenue", ["Customer[State]", "Calendar[Date]"], filters=filters) df_measure
Voit myös arvioida Total Revenue -mittarin asiakkaan tilaa ja päivämäärää kohden DAX-kyselyllä.
df_dax = fabric.evaluate_dax( "Customer Profitability Sample", """ EVALUATE SUMMARIZECOLUMNS( 'State'[Region], 'Calendar'[Date].[Year], 'Calendar'[Date].[Month], "Total Revenue", CALCULATE([Total Revenue])) """)
Muistiinpano
- Tiedot noudetaan XMLA:n avulla, joten niiden käyttöön lisääminen edellyttää vähintään XMLA:n vain luku -käyttöä.
- Microsoft Azure Analysis Services- ja Spark-ohjainsolmujen käytettävissä oleva muisti rajoittaa noudettavien tietojen määrää (lisätietoja on solmukokojen luona)
- Kaikissa pyynnöissä käytetään matalaa prioriteettia sen minimoimiseksi, mikä vaikuttaa Analysis Services -suorituskykyyn, ja niitä laskutetaan vuorovaikutteisena pyyntönä
Käytä solun
%%dax
taikaa saman DAX-kyselyn arvioimiseen ilman tarvetta tuoda kirjastoa. Lataa solun taika suorittamalla%%dax
tämä solu:%load_ext sempy
Työtilaparametri on valinnainen. Se noudattaa samoja sääntöjä kuin funktion
evaluate_dax
työtilaparametri.Solun taika tukee myös Python-muuttujien käyttöä syntaksin
{variable_name}
avulla. Jos haluat käyttää aaltosulkeita DAX-kyselyssä, voit välttää sen toisella aaltosulkeella (esimerkki:EVALUATE {{1}}
).%%dax "Customer Profitability Sample" -w "Your Workspace" EVALUATE SUMMARIZECOLUMNS( 'State'[Region], 'Calendar'[Date].[Year], 'Calendar'[Date].[Month], "Total Revenue", CALCULATE([Total Revenue]))
Tulokseksi saatava FabricDataFrame on saatavilla -muuttujan
_
kautta. Tämä muuttuja tallentaa viimeisen suoritetun solun tuloksen.df_dax = _ df_dax.head()
Voit lisätä mittareita ulkoisista lähteistä noudettuihin tietoihin. Tämä lähestymistapa yhdistää kolme tehtävää:
- Se ratkaisee sarakkeiden nimet Power BI -dimensioihin
- Se määrittää ryhmittelyn sarakkeiden mukaan
- Se suodattaa mittarin Kaikki sarakkeiden nimet, joita ei voi ratkaista tietyssä semanttisessa mallissa, ohitetaan (lisätietoja on tuetussa DAX-syntaksiresurssissa ).
from sempy.fabric import FabricDataFrame df = FabricDataFrame({ "Sales Agent": ["Agent 1", "Agent 1", "Agent 2"], "Customer[Country/Region]": ["US", "GB", "US"], "Industry[Industry]": ["Services", "CPG", "Manufacturing"], } ) joined_df = df.add_measure("Total Revenue", dataset="Customer Profitability Sample") joined_df
Erityiset parametrit
SemPy-parametrilla read_table
ja evaluate_measure
-menetelmillä on enemmän parametreja, joista on hyötyä tuloksen muokkaamisessa. Näitä parametreja ovat esimerkiksi seuraavat:
fully_qualified_columns
: "Tosi"-arvolle menetelmät palauttavat sarakkeiden nimet lomakkeessaTableName[ColumnName]
num_rows
: Tuloksessa tulostettavien rivien määräpandas_convert_dtypes
: Pandas-arvoksi pandas heittää tulokseksi saatavat DataFrame-sarakkeet parhaan mahdollisen dtype-convert_dtypes. Jos tämä parametri on poistettu käytöstä, tyypin yhteensopivuusongelmat liittyvien taulukoiden sarakkeiden välillä voivat aiheuttaa ongelmia. Power BI -malli ei välttämättä tunnista näitä ongelmia IMPlisiittisen DAX-tyypin muunnoksen vuoksi
SemPy read_table
käyttää myös Power BI:n tarjoamia mallitietoja.
Semanttisten mallien kuluttamien tietojen kirjoittaminen
Lakehouse-järjestelmään lisätyt Spark-taulukot lisätään automaattisesti vastaavaan semanttiseen oletusmalliin. Tässä esimerkissä näytetään, miten voit kirjoittaa tietoja liitettyyn Lakehouse-järjestelmään. FabricDataFrame hyväksyy samat syötetiedot kuin Pandas-tietokehykset.
from sempy.fabric import FabricDataFrame
df_forecast = FabricDataFrame({'ForecastedRevenue': [1, 2, 3]})
df_forecast.to_lakehouse_table("ForecastTable")
Power BI:llä ForecastTable-taulukko voidaan lisätä yhdistelmäsemanttiseen malliin Lakehousen semanttisella mallilla.