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.
- Siirry Microsoft Fabricin datatieteen 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 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 yrityksen markkinointimateriaaleihin ja sisältää tietoja tuotteista, asiakkaista ja eri liiketoimintayksiköiden vastaavista tuotoista.
- Avaa työtilasi 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. Käytät tätä semanttista mallia tämän artikkelin vaiheissa.
Semanttisten mallien tietojen lukeminen Pythonilla
SemPy Python -ohjelmointirajapinta voi noutaa tietoja ja metatietoja Microsoft Fabric -työtilassa olevista semanttisista malleista ja suorittaa niille kyselyitä.
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 koodissa on määritetty SemPy-työtila 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
Nyt olemme määrittäneet, 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, joten ne edellyttävät vähintään XMLA:n vain luku -käyttöä.
- Semanttista mallia isännöivän kapasiteetin SKU:n kyselykohtainen enimmäismuistimäärä ja muistikirjaa suorittava Spark-ohjainsolmu (katso muistikirjaa suorittava solmun koko) rajoittaa noudettavien tietojen määrää.
- Kaikissa pyynnöissä käytetään matalaa prioriteettia sen minimoimiseksi, mikä vaikuttaa Microsoft Azure Analysis Servicesin suorituskykyyn, ja niitä laskutetaan vuorovaikutteisena pyyntönä.
Arvioi Kokonaistuotto-mittari asiakkaan tilaa ja päivämäärää kohden.
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öä.
- Lisäksi Power BI -taustarajoitukset eivät koske tietoja.
- Semanttista mallia isännöivän kapasiteetin SKU:n kyselykohtainen enimmäismuistimäärä ja muistikirjaa suorittava Spark-ohjainsolmu (katso muistikirjaa suorittava solmun koko) rajoittaa noudettavien tietojen määrää.
- Kaikkia pyyntöjä laskutetaan vuorovaikutteisiksi pyynnöiksi.
Voit lisätä suodattimia mittarin laskentaan määrittämällä luettelon arvoista, jotka voivat olla tietyssä sarakkeessa.
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 Kokonaistuotto-mittarin asiakkaan tilaa 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 ne edellyttävät vähintään XMLA:n vain luku -käyttöä.
- Microsoft Azure Analysis Servicesissä ja Spark-ohjainsolmussa käytettävissä olevan muistin määrä rajoittaa noudettavien tietojen määrää (katso solmun koko).
- Kaikissa pyynnöissä käytetään matalaa prioriteettia sen minimoimiseksi, mikä vaikuttaa Analysis Servicesin suorituskykyyn, ja niitä laskutetaan vuorovaikutteisena pyyntönä.
Voit arvioida saman DAX-kyselyn ilman tarvetta tuoda kirjastoa käyttämällä solun
%%dax
taikuutta. Suoritetaan alla oleva solu, niin solun taikuutta ladataan%%dax
.%load_ext sempy
Työtila-parametri on valinnainen, ja se noudattaa samoja sääntöjä kuin funktion
evaluate_dax
työtilaparametri. Solun taika tukee myös Python-muuttujien käyttämistä syntaksin{variable_name}
avulla. Jos haluat käyttää aaltosulkeita DAX-kyselyssä, voit välttää sen toisella aaltosulkeella (esimerkiksiEVALUATE {{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 käytettävissä -muuttujan
_
kautta, joka tallentaa viimeisen suoritetun solun tuloksen.df_dax = _ df_dax.head()
Vaihtoehtoisesti voit lisätä mittareita ulkoisista lähteistä noudettuihin tietoihin. Tämä lähestymistapa yhdistää kolme tehtävää: se ratkaisee sarakenimet Power BI -dimensioihin, määrittää ryhmittelyn sarakkeiden mukaan ja suodattaa mittarin. Kaikki sarakkeiden nimet, joita ei voida ratkaista annetun semanttisen mallin sisällä, ohitetaan (katso tuettu DAX-syntaksi).
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
: Jos arvo on "True", menetelmät palauttavat sarakkeiden nimet lomakkeessaTableName[ColumnName]
.num_rows
: Tuloksessa tulostettavien rivien määrä.pandas_convert_dtypes
: Jos arvo on "True", tuloksena saatavat DataFramen sarakkeet valetaan parhaan mahdollisen dtype-tyyppiin pandas convert_dtypes avulla. Jos tämä parametri on poistettu käytöstä, tyypin yhteensopivuusongelmat voivat johtua liittyvien taulukoiden sarakkeista, joita Ei ehkä ole havaittu Power BI -mallissa DAXin implisiittisen tyypin muunnoksen vuoksi.
SemPy read_table
käyttää myös Power BI:n toimittamia mallitietoja.
multiindex_hierarchies
: Jos arvo on tosi, 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ä 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")
Käyttämällä Power BI: tä ForecastTable-taulukko voidaan lisätä yhdistelmäseemanttiseen malliin Lakehousen semanttisen mallin avulla.
Liittyvä sisältö
Palaute
https://aka.ms/ContentUserFeedback.
Tulossa pian: Vuoden 2024 aikana poistamme asteittain GitHub Issuesin käytöstä sisällön palautemekanismina ja korvaamme sen uudella palautejärjestelmällä. Lisätietoja on täällä:Lähetä ja näytä palaute kohteelle