Muistiinpano
Tälle sivulle pääsy edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoja.
Tälle sivulle pääsy edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoja.
Tässä artikkelissa opit lukemaan tietoja, metatietoja ja arvioimaan mittareita semanttisissa malleissa 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.
Vaihda Fabric-tilaan käyttämällä etusivun vasemmassa alakulmassa olevaa kokemuskytkintä.
- Siirry Microsoft Fabricin Data Science -kokemukseen.
- Luo uusi muistikirja, jonka avulla voit kopioida ja liittää koodia 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 Customer Profitability Sample.pbix semanttinen malli fabric-sample-säilön tietojoukot-kansiosta ja tallenna se paikallisesti.
Semanttisen mallin lataaminen työtilaan
Tässä artikkelissa käytetään asiakkaan tuottavuuden malli.pbix-semanttista mallia. Semanttinen malli viittaa markkinointimateriaaleja valmistavaan yritykseen. Se sisältää eri liiketoimintayksiköiden tuote-, asiakas- ja tuottotiedot.
- Avaa työtilasi Fabric Data Sciencessa.
- Valitse Tuo > raportti, Sivutettu raportti tai Työkirja > tästä tietokoneesta ja valitse semanttinen malli Asiakkaan kannattavuus Sample.pbix .
Kun lataus on valmis, työtilassasi on kolme uutta artefaktia: Power BI -raportti, koontinäyttö ja semanttinen malli nimeltä Asiakkaan kannattavuusmalli. 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ää.
Voit lukea tietoja semanttisista malleista seuraavasti:
Luettele työtilassa käytettävissä olevat semanttiset mallit.
import sempy.fabric as fabric df_datasets = fabric.list_datasets() df_datasetsLuettele asiakkaan tuottavuuden mallin semanttisessa mallissa käytettävissä olevat taulukot.
df_tables = fabric.list_tables("Customer Profitability Sample", include_columns=True) df_tablesLuettele 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_measuresTä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_tableMuistiinpano
- Tiedot noudetaan XMLA:n avulla, joka edellyttää vähintään XMLA:n vain luku -muotoa .
- Noudettavien tietojen määrää rajoittavat seuraavat: - Semanttista mallia isännöivän kapasiteetti-SKU:n kyselykohtainen enimmäismuisti. - Spark-ohjainsolmu (katso lisätietoja kohdasta Solmujen koot ), joka suorittaa muistikirjan.
- Kaikki pyynnöt käyttävät matalaa prioriteettia Microsoft Azure Analysis Servicesin suorituskykyyn kohdistuvien vaikutusten minimoimiseksi, ja ne laskutetaan vuorovaikutteisina pyyntöinä.
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_measureMuistiinpano
- Oletusarvoisesti tietoja ei noudeta XMLA:n avulla, joten vain luku -muotoista XMLA:ta ei tarvitse ottaa käyttöön.
- Tietoihin ei sovelleta Power BI:n taustarajoituksia.
- Noudettavien tietojen määrää rajoittavat seuraavat: - Semanttista mallia isännöivän kapasiteetin SKU:n enimmäismuisti kyselyä kohden . - Spark-ohjainsolmu (katso lisätietoja kohdasta Solmujen koot ), joka suorittaa muistikirjan.
- Kaikki pyynnöt laskutetaan vuorovaikutteisina pyyntöinä.
- Funktio
evaluate_daxei päivitä semanttista mallia automaattisesti. Katso lisätietoja tämän sivun .
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_measureArvioi Total Revenue -mittari asiakkaan osavaltiota ja päivämäärää kohden DAX-kyselyn avulla.
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
%%daxtaikaa saman DAX-kyselyn arvioimiseen ilman tarvetta tuoda kirjastoa. Lataa solun taika suorittamalla%%daxtämä solu:%load_ext sempyTyötilaparametri on valinnainen. Se noudattaa samoja sääntöjä kuin funktion
evaluate_daxtyö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:
-
pandas_convert_dtypes: Jos asetuksena on ,Truepandas luopuu tuloksena olevat DataFrame-sarakkeet parhaaseen mahdolliseen dtypeen. Lue lisää convert_dtypes. Jos tämä parametri on poistettu käytöstä, liittyvien taulukoiden sarakkeiden välillä saattaa ilmetä tyypin yhteensopimattomuusongelmia. Power BI -malli ei ehkä havaitse näitä ongelmia DAX:n implisiittisen tyyppimuunnoksen vuoksi.
SemPy read_table käyttää myös Power BI:n tarjoamia mallitietoja.
-
multiindex_hierarchies: Jos asetuksenaTrueon , se muuntaa Power BI -hierarkiat pandas MultiIndex -rakenteeksi.
Semanttisten mallien kuluttamien tietojen kirjoittaminen
Lakehouse-järjestelmään lisätyt Spark-taulukot lisätään automaattisesti vastaavaan semanttiseen oletusmalliin. Tässä artikkelissa kerrotaan, miten tietoja kirjoitetaan liitettyyn Lakehouseen. Hyväksyy FabricDataFrame samat syöttötiedot kuin Pandas-tietokehykset.
from sempy.fabric import FabricDataFrame
df_forecast = FabricDataFrame({'ForecastedRevenue': [1, 2, 3]})
df_forecast.to_lakehouse_table("ForecastTable")
Power BI:n avulla ForecastTable-taulukko voidaan lisätä semanttiseen yhdistelmämalliin, joka sisältää Lakehousen semanttisen mallin.