Jaa


Mallien suhteet Power BI Desktopissa

Tämä artikkeli on tarkoitettu tuontitietojen mallintajille, jotka työskentelevät Power BI Desktopin kanssa. Se on tärkeä mallisuunnittelun aihealue, jolla on oleellinen merkitys toimittaessa intuitiivisia, tarkkoja ja optimaalisia malleja.

Kun haluat syvempää keskustelua optimaalisen mallin rakenteesta, mukaan lukien taulukoiden roolit ja suhteet, lue artikkeli Tutustu tähtirakenteeseen ja sen merkitykseen Power BI:ssä.

Yhteyden tarkoitus

Malliyhteys levittää yhden mallitaulukon sarakkeessa käytetyt suodattimet eri mallitaulukkoon. Suodattimet leviävät niin kauan kuin on seurattava yhteyspolku, mikä voi merkitä, että ne leviävät useisiin taulukoihin.

Yhteyspolut ovat deterministisiä, mikä tarkoittaa, että suodattimet levitetään aina samalla tavalla ja ilman satunnaisia vaihteluja. Yhteydet voidaan kuitenkin poistaa käytöstä tai niiden suodatinkontekstia voidaan muuttaa tiettyjä DAX-funktioita käyttävillä mallilaskelmilla. Katso lisätietoja tämän artikkelin myöhemmästä aiheesta Asiaan liittyvät DAX-funktiot .

Tärkeä

Mallisuhteet eivät pakota tietojen eheyttä. Lisätietoja on tämän artikkelin myöhemmässä kohdassa Yhteyden arviointi , jossa kerrotaan, miten malliyhteydet toimivat, kun tiedoissasi ilmenee eheysongelmia.

Näin yhteydet levittävät suodattimia animoidun esimerkin avulla.

Animoitu kaavio siitä, kuinka yhteys levittää suodatinta.

Tässä esimerkissä malliin kuuluu neljä taulukkoa: Luokka, Tuote, Vuosi ja Myynti. Luokka-taulukko liittyy Product-taulukkoon ja Product-taulukko liittyy Sales-taulukkoon. Vuosi-taulukko liittyy myös Myynti-taulukkoon. Kaikki yhteydet ovat yksi moneen -tyyppisiä (yksityiskohdat kuvataan myöhemmin tässä artikkelissa).

Kysely, mahdollisesti Power BI -kortin visualisoinnin synnyttämä, pyytää myynnin kokonaismäärää myyntitilauksille, jotka koskevat yksittäistä luokkaa, Cat-A, ja yhtä vuotta, CY2018. Siksi näet, että suodattimia käytetään taulukoissa Luokka ja Vuosi . Suodatin taulukossa Luokka leviää taulukkoon Tuote ja eristää kaksi tuotetta, jotka on määritetty luokkaan Cat-A. Sitten taulukon Tuote suodattimet leviävät taulukkoon Myynti ja eristävät vain kaksi riviä näille tuotteille. Nämä kaksi myyntiriviä edustavat luokkaan Cat-A määritettyjen tuotteiden myyntiä. Niiden määrä on yhteensä 14 yksikköä. Samanaikaisesti taulukon Vuosi suodatin leviää suodattamaan edelleen taulukkoa Myynti , jolloin tuloksena on vain se ainoa myyntirivi, joka koskee luokkaan Cat-A määriteltyjä, vuonna CY2018 tilattuja tuotteita. Kyselyn palauttama määräarvo on 11 yksikköä. Huomaa, että kun taulukkoon käytetään useita suodattimia (kuten tässä esimerkissä taulukkoon Myynti ), kyseessä on aina AND-toiminto, joka edellyttää kaikkien ehtojen olevan tosia.

Tähtirakenteen suunnitteluperiaatteiden käyttäminen

Suosittelemme, että otat käyttöön tähtirakenteen suunnitteluperiaatteet ja luot mallin, joka koostuu dimensio- ja faktataulukoista. On yleistä määrittää Power BI valvomaan sääntöjä, jotka suodattavat dimensiotaulukoita, jotta mallisuhteet voivat tehokkaasti levittää nämä suodattimet faktataulukoihin.

Seuraava kuva on Adventure Worksin myyntianalyysitietomallin mallikaavio. Se näyttää tähtirakenteen, joka koostuu yhdestä faktataulukosta, jonka nimi on Myynti. Muut neljä taulukkoa ovat dimensiotaulukoita, jotka tukevat myyntimittareiden analyysia päivämäärän, osavaltion, alueen ja tuotteen mukaan. Huomaa kaikki taulukot yhdistävät mallisuhteet. Nämä yhteydet levittävät suodattimia (suoraan tai epäsuorasti) Myynti-taulukkoon.

Näyttökuva Power BI Desktop -mallikaaviosta, joka koostuu edellisessä kappaleessa kuvatuista taulukoista ja suhteista.

Irrallisia taulukoita

On epätavallista, että mallitaulukko ei liity toiseen mallitaulukkoon. Kelvollisen mallin taulukkoa kuvataan irralliseksi taulukoksi. Irrallista taulukkoa ei ole tarkoitettu levittamaan suodattimia muihin mallitaulukoihin. Sen sijaan se hyväksyy "käyttäjän syötteen" (mahdollisesti osittajavisualisoinnin kanssa), jolloin mallilaskelmat voivat käyttää syötearvoa mielekkäällä tavalla. Harkitse esimerkiksi irrallista taulukkoa, joka sisältää joukon valuutanvaihtokurssiarvoja. Kunhan suodatinta käytetään suodattamaan yksittäisen suhdearvon mukaan, mittarilauseke voi käyttää kyseistä arvoa myyntiarvojen muuntamiseen.

Power BI Desktopin entä jos -parametri on ominaisuus, joka luo irrallisen taulukon. Lisätietoja on artikkelissa Entä jos -parametrien luominen ja käyttäminen muuttujien visualisointiin Power BI Desktopissa.

Yhteyden ominaisuudet

Malliyhteys liittää yhden taulukon yhden sarakkeen toisen taulukon yhteen sarakkeeseen. (On yksi erityinen tapaus, jossa tämä vaatimus ei ole tosi, ja se koskee vain monisarakkeisia yhteyksiä DirectQuery-malleissa. Lisätietoja on artikkelissa DAX Mt CO Mt ARVOES-funktio.)

Muistiinpano

Saraketta ei voi liittää toiseen sarakkeeseen samassa taulukossa. Tämä konsepti sekoitetaan toisinaan kykyyn määrittää relaatiotietokannan viiteavainrajoite, joka on itseensä viittaava taulukon sisällä. Voit käyttää tätä relaatiotietokantakonseptia pää-alielementtisuhteiden tallentamiseen (esimerkiksi jokainen työntekijätietue on suhteessa "raportoi työntekijälle" -työntekijään). Mallien suhteiden avulla ei kuitenkaan voi luoda mallihierarkiaa tämäntyyppisen suhteen perusteella. Jos haluat luoda pää- ja alielementtihierarkian, katso kohta Pää- ja alielementtifunktiot.

Sarakkeiden tietotyypit

Suhteen "kohteesta"- ja "to"-sarakkeen tietotyypin on oltava sama. DateTime-sarakkeissa määritettyjen suhteiden käyttäminen ei ehkä toimi odotetusti. Moduuli, joka tallentaa Power BI -tiedot, käyttää vain DateTime-tietotyyppejä. Päivämäärä-, Aika- ja Päivämäärä/aika/aikavyöhyke-tietotyypit ovat Power BI:n muotoilurakenteita, jotka on toteutettu päällekkäin. Kaikki malliin riippuvaiset objektit näkyvät edelleen päivämäärä/aika-moduulissa (kuten yhteydet, ryhmät ja niin edelleen). Jos käyttäjä esimerkiksi valitsee päivämääränMallinnus-välilehdestä tällaisille sarakkeille, hän ei edelleenkään rekisteröidy samaksi päivämääräksi, koska moduuli yhä tutkii tietojen aikaosaa. Lue lisää päivämäärä/aikatyyppien käsittelystä. Toiminnan korjaamiseksi sarakkeen tietotyypit on päivitettävä Power Query -editori aikaosan poistamiseksi tuoduista tiedoista, joten kun moduuli käsittelee tietoja, arvot näkyvät samoina.

Kardinaliteetti

Kunkin mallisuhteen määrittää kardinaliteettityyppi. Kardinaliteettityyppivaihtoehtoja on neljä, jotka edustavat "kohteesta"- ja "kohteeseen" liittyvien sarakkeiden tieto-ominaisuuksia. "Yksi"-puoli tarkoittaa, että sarake sisältää yksilöllisiä arvoja. "Monta"-puoli tarkoittaa, että sarake voi sisältää arvojen kaksoiskappaleita.

Muistiinpano

Jos tietojen päivittämistoiminto yrittää ladata kaksoiskappalearvoja "yksi"-puolen sarakkeeseen, koko tietojen päivittäminen epäonnistuu.

Neljä vaihtoehtoa pikamerkintätaloineen on kuvattu seuraavassa luettelossa:

  • Yksi moneen (1:*)
  • Monta yhteen (*:1)
  • Yksi yhteen (1:1)
  • Monta moneen (*:*)

Kun luot yhteyden Power BI Desktopissa, suunnittelija tunnistaa ja määrittää kardinaliteettityypin automaattisesti. Power BI Desktop lähettää mallille kyselyn ja tietää, mitkä sarakkeet sisältävät yksilöllisiä arvoja. Tuontimalleissa se käyttää sisäisiä tallennustilastoja. DirectQuery-malleille se lähettää profilointikyselyjä tietolähteeseen. Joskus Power BI Desktop voi kuitenkin erehtyä. Se voi erehtyä, kun tietoja ei ole vielä ladattu taulukoihin tai koska sarakkeet, joiden odotat sisältävän kaksoiskappalearvoja sisältävät vain ainutlaatuisia arvoja. Kummassakin tapauksessa voit päivittää kardinaliteettityypin, jos kaikki "yksi"-puolen sarakkeet sisältävät yksilöllisiä arvoja (tai tietorivejä ei vielä ole ladattu taulukkoon).

Yksi moneen (ja monta yhteen) -kardinaliteetti

Yksi moneen - ja Monta yhteen -kardinaliteettivalinnat ovat oleellisesti samoja, ja ne ovat myös yleisimmät kardinaliteettityypit.

Kun määrität yksi moneen- tai monta yhteen -suhteen, valitset sen, joka vastaa sarakkeiden yhdistämisjärjestystäsi. Pohdi, miten määrittäisit yhteyden Product-taulukosta Sales-taulukkoon käyttämällä kustakin taulukosta löytynyttä ProductID-saraketta. Kardinaliteettityyppi olisi yksi moneen, koska ProductID-sarake ProductID-taulukossa sisältää yksilöllisiä arvoja. Jos liität taulukot päinvastaiseen suuntaan, Myynti tuotteeseen, kardinaliteetti on monta yhteen.

Yksi yhteen -kardinaliteetti

Yksi yhteen - suhde tarkoittaa, että molemmat sarakkeet sisältävät yksilöllisiä arvoja. Tämä kardinaliteettityyppi ei ole yleinen, ja se edustaa todennäköisesti epätodennäköistä rakenteena tarpeetonta tietoa.

Lisätietoja tämän kardinaliteettityypin käyttämisestä on artikkelissa Yksi-yhteen-suhteen ohjeet.

Monta moneen -kardinaliteetti

Monta moneen - yhteys tarkoittaa, että molemmat sarakkeet voivat sisältää arvojen kaksoiskappaleita. Tätä kardinaliteettityyppiä käytetään harvoin. Siitä on yleensä hyötyä, kun suunnitellaan monimutkaisia mallivaatimuksia. Sen avulla voit liittää monta-moneen-faktoja tai liittää yksityiskohtaisia faktoja. Esimerkiksi silloin, kun myyntitavoitteen faktat tallennetaan tuoteluokan tasolle ja tuotteen dimensiotaulukko tallennetaan tuotetasolle.

Ohjeita tämän kardinaliteettityypin käyttämisestä on artikkelissa Monta-moneen-suhteen ohjeet.

Muistiinpano

Monta moneen -kardinaliteettityyppiä tuetaan malleilla, jotka on kehitetty Power BI -raporttipalvelin tammikuuta 2024 ja sitä uudemmissa versioissa.

Vihje

Power BI Desktop -mallinäkymässä voit tulkita yhteyden kardinaliteettityypin katsomalla ilmaisimia (1 tai *) kummallakin yhteysviivan puolella. Jos haluat selvittää, mitkä sarakkeet liittyvät toisiinsa, sinun on valittava yhteysviiva tai vietävä kohdistin yhteysviivan kohdalle, jotta voit korostaa sarakkeet.

Näyttökuva mallikaavion kahdesta taulukosta, joissa kardinaliteettiilmaisimet on korostettu.

Ristisuodatus

Kullakin malliyhteydellä on ristisuodatussuunta. Asetuksesi määrittää suodattimien levityssuunnan tai -suunnat. Mahdolliset ristisuodatusvalinnat ovat riippuvaisia kardinaliteettityypistä.

Kardinaliteettityyppi Ristisuodatusasetukset
Yksi moneen (tai monta yhteen) Yksittäinen
Molemmat
Kahdenkeskinen Molemmat
Monta moneen Yksittäinen (taulukosta 1 taulukkoon 2)
Yksittäinen (taulukosta 2 taulukkoon 1)
Molemmat

Yksittäinen ristisuodatussuunta tarkoittaa "yhteen suuntaan" ja Molemmat tarkoittaa "molempiin suuntiin". Molempiin suuntiin suodatettua suhdetta kuvataan tavallisesti kaksisuuntaiseksi.

Yksi moneen -yhteyksissä ristisuodatussuunta lähtee aina "yksi"-puolelta, ja valinnaisesti "monta"-puolelta (kaksisuuntainen). Yksi yhteen -suhteissa ristisuodatussuunta lähtee aina molemmista taulukoista. Lopuksi: monta moneen -yhteyksissä ristisuodatussuunta voi olla peräisin jommastakummasta taulukosta tai molemmista taulukoista. Huomaa, että kun kardinaliteettityyppi sisältää "yksi"-puolen, suodattimet leviävät aina siltä puolelta.

Kun ristisuodatussuunnaksi on määritetty Molemmat, toinen ominaisuus tulee saataville. Se voi käyttää kaksisuuntaista suodatusta, kun Power BI valvoo rivitason suojauksen (RLS) sääntöjä. Lisätietoja RLS:stä on artikkelissa Rivitason suojaus (RLS) Power BI Desktopissa.

Voit muokata yhteyden ristisuodatussuuntaa, mukaan lukien suodatuksen leviämisen poistamista käytöstä, mallilaskelman avulla. Se tehdään käyttämällä DAX-funktiota CROSSFILTER .

Muista, että kaksisuuntaiset suhteet voivat vaikuttaa haitallisesti suorituskykyyn. Lisäksi kaksisuuntaisen yhteyden määrittäminen voi aiheuttaa moniselitteisiä suodattimien levityspolkuja. Tässä tapauksessa Power BI Desktop saattaa epäonnistua yhteyden muuttamisessa ja antaa sinulle virheilmoituksen. Joskus Power BI Desktopin avulla voit kuitenkin määrittää taulukoiden välisiä moniselitteisiä suhdepolkuja. Suhdepolun moniselitteisyyden selvittämistä käsitellään myöhemmin tässä artikkelissa.

Suosittelemme kaksisuuntaisen suodatuksen käyttöä vain kun se on tarpeen. Lisätietoja on artikkelissa Kaksisuuntaisen suhteen ohjeet.

Vihje

Power BI Desktop -mallinäkymässä voit tulkita yhteyden ristisuodatussuunnan huomaat yhteysviivan nuolenpääkuvat. Yksittäinen nuolenpää edustaa yksisuuntaista suodatinta nuolenpään suunnassa. kaksinkertainen nuolenpää edustaa kaksisuuntaista suhdetta.

Näyttökuva mallikaavion kahdesta taulukosta, joissa ristisuodattimen nuolenpää on korostettuna.

Tee tästä suhteesta aktiivinen

Kahden mallitaulukon välillä voi olla vain yksi aktiivinen suodatuksen levityspolku. On kuitenkin mahdollista ottaa käyttöön ylimääräisiä yhteyspolkuja, mutta nämä yhteydet on määritettävä passiivisiksi. Passiivisia suhteita voidaan määrittää aktiivisiksi vain mallilaskelman arvioinnin aikana. Se tehdään käyttämällä DAX-funktiota USERELATIONSHIP .

Yleensä suosittelemme aktiivisten suhteiden määrittämistä aina kun mahdollista. Ne laajentavat raportin tekijöiden tapaa käyttää malliasi. Vain aktiivisten suhteiden käyttäminen tarkoittaa, että rooliulottuvuustaulukot tulee monistaa mallissasi.

Tietyissä tilanteissa voit kuitenkin määrittää yhden tai useamman passiivisen suhteen rooliulottuvuustaulukolle. Voit harkita tätä rakennetta seuraavassa:

  • Raportin visualisointien ei tarvitse samanaikaisesti suodattua eri roolien mukaan.
  • DAX-funktiolla USERELATIONSHIP aktivoit tietyn suhteen soveltuvia mallilaskelmia varten.

Lisätietoja on artikkelissa Aktiivisten ja passiivisten suhteiden ohjeet.

Vihje

Power BI Desktop -mallinäkymässä voit tulkita yhteyden aktiivisen ja passiivisen tilan. Aktiivista yhteyttä edustaa yhtenäinen viiva. passiivinen yhteys esitetään katkoviivana.

Näyttökuva mallikaavion kahdesta taulukosta ja kahdesta suhteesta; yksi yhtenäinen viiva aktiivisille ja yksi katkoviiva passiiviseksi

Oleta viite-eheys

Oleta viite-eheys -ominaisuus on käytettävissä vain yksi moneen- ja yksi yhteen -yhteyksissä kahden DirectQuery-tallennustilataulukon välillä, jotka kuuluvat samaan lähderyhmään. Voit ottaa tämän ominaisuuden käyttöön vain, kun "monta"-puolen sarake ei sisällä NULL-osoitteita.

Kun asetus on käytössä, tietolähteelle lähetettävät alkuperäiset kyselyt liittävät nämä kaksi taulukkoa yhteen käyttämällä INNER JOIN -, ei -parametria OUTER JOIN. Yleensä tämän ominaisuuden käyttöönotto parantaa kyselyn tehokkuutta, mutta tämä riippuu kuitenkin tietolähteen ominaisuuksista.

Ota tämä ominaisuus aina käyttöön, kun taulukoiden välillä on tietokannan viiteavaimen rajoite. Vaikka viiteavaimen rajoitetta ei olisikaan, harkitse ominaisuuden käyttöönottoa, kunhan olet varma tietojen eheydestä.

Tärkeä

Jos tietojen eheys vaarantuu, sisäliitos poistaa taulukoiden väliset vertaansamattomat rivit. Ajatellaan esimerkiksi mallitaulukkoa Myynti, jossa on ProductID-sarakkeenarvo, jota ei ollut liittyvästä Tuote-taulukosta. Suodattimien levitys Tuote-taulukosta Myynti-taulukkoon poistaa tuntemattomien tuotteiden myyntirivit. Tämä johtaa siihen, että myyntitulokset näkyvät todellista heikosti.

Lisätietoja on artikkelissa Oleta viite-eheys -asetus Power BI Desktopissa.

Asiaan liittyvät DAX-funktiot

On olemassa useita DAX-funktioita, jotka liittyvät malliyhteyksiin. Kutakin funktiota kuvataan lyhyesti seuraavassa luettelossa:

  • RELATED: Hakee arvon suhteen "yksi"-puolelta. Siitä on hyötyä, kun käytät laskutoimituksia eri taulukoista, jotka arvioidaan rivikontekstissa.
  • RELATEDTABLE: Nouda rivitaulukko suhteen "monta"-puolelta.
  • USERELATIONSHIP: Sallii laskutoimituksen käyttää passiivista suhdetta. (Teknisesti tämä funktio muokkaa tietyn passiivisen mallisuhteen painotusta ja auttaa vaikuttamaan sen käyttöön.) Siitä on hyötyä, kun malli sisältää rooliulottuvuustaulukon ja valitset passiivisten suhteiden luomisen tästä taulukosta. Tämän funktion avulla voit myös ratkaista moniselitteisyyttä suodatinpoluissa.
  • CROSSFILTER: Muokkaa yhteyden ristisuodatussuuntaa (yksi tai molemmat), tai poistaa suodattimien levittämisen käytöstä (ei mitään). Siitä on hyötyä, kun haluat muuttaa tai ohittaa mallisuhteita tietyn laskutoimituksen arvioinnin aikana.
  • CO Mt INEVALUES: Yhdistää kaksi tai useampia tekstimerkkijonoja yhdeksi tekstimerkkijonoksi. Tämän funktion tarkoituksena on tukea monisarakkeisia yhteyksiä DirectQuery-malleissa, kun taulukot kuuluvat samaan lähderyhmään.
  • TREATAS: Soveltaa taulukkolausekkeen tulosta suodattimena liittymättömän taulukon sarakkeisiin. Siitä on hyötyä edistyneissä skenaarioissa, kun haluat luoda virtuaalisen suhteen tietyn laskutoimituksen arvioinnin aikana.
  • Pää- ja alielementtifunktiot: Toisiinsa liittyvien funktioiden perhe, jonka avulla voit luoda laskettuja sarakkeita pää-alielementtihierarkian naturalisoimiseksi. Voit sitten luoda kiinteän tason hierarkian näiden sarakkeiden avulla.

Suhteen arviointi

Arviointiperspektiivistä käsin malliyhteydet luokitellaan joko tavallisiksi tai rajoitetuiksi. Se ei ole määritettävissä oleva suhdeominaisuus. Se itse asiassa päätellään kahden toisiinsa liittyvän taulukon kardinaliteettityypistä ja tietolähteestä. On tärkeää ymmärtää arviointityyppi, koska tietojen eheyden vaarantuminen voi vaikuttaa suorituskykyyn. Nämä vaikutukset ja seurauksia eheydelle on kuvattu tässä ohjeaiheessa.

Ensinnäkin suhteiden arviointien ymmärtämiseen tarvitaan jonkin verran mallintamisteoriaa.

Tuonti- tai DirectQuery-malli hankkii kaikki tiedot joko Vertipaq-välimuistista tai lähdetietokannasta. Kummassakin tapauksessa Power BI kykenee määrittämään, että yhteydellä on "yksi"-puoli.

Yhdistelmämalli voi kuitenkin koostua taulukoista, jotka käyttävät eri tallennustiloja (tuonti, DirectQuery tai kaksoistaulukko), tai taulukoista, jotka käyttävät useita DirectQuery-lähteitä. Jokaista lähdettä, myös tuotujen tietojen Vertipaq-välimuistia, pidetään lähderyhmänä. Malliyhteydet voidaan sitten luokitella lähteen sisäiseksi ryhmäksi tai lähteiden väliseksi ryhmäksi. Lähderyhmän sisäinen suhde liittää yhteen lähderyhmän kaksi taulukkoa, kun taas lähderyhmien välinen suhde yhdistää taulukot kahteen lähderyhmään. Ota huomioon, että tuonti- ja DirectQuery-malleissa yhteydet ovat aina lähderyhmän sisäisiä.

Tässä on esimerkki yhdistelmämallista.

Kaavio yhdistelmämallista, joka koostuu kahdesta lähderyhmästä.

Tässä esimerkissä yhdistelmämalli koostuu kahdesta lähderyhmästä: Vertipaq-lähderyhmästä ja DirectQuery-lähderyhmästä. Vertipaq-lähderyhmä sisältää kolme taulukkoa, ja DirectQuery-lähderyhmä sisältää kaksi taulukkoa. Olemassa on yksi lähderyhmien välinen yhteys, joka yhdistää yhden taulukon Vertipaq-lähderyhmästä DirectQuery-lähderyhmään.

Tavalliset yhteydet

Malliyhteys on tavallinen , kun kyselymoduuli voi määrittää yhteyden "yksi"-puolen. Sillä on vahvistus, että "yksi"-puolen sarake sisältää yksilöllisiä arvoja. Kaikki lähderyhmän sisäiset yksi moneen -yhteydet ovat tavallisia yhteyksiä.

Seuraavassa esimerkissä on kaksi tavallista yhteyttä, molemmat merkitty R:llä. Yhteyksiin kuuluu Vertipaq-lähderyhmän sisäinen yhdestä moneen -suhde ja DirectQuery-lähteen sisäinen yhdestä moneen -suhde.

Yhdistelmämallin kaavio, joka koostuu kahdesta lähderyhmästä, tavalliset yhteydet merkittyinä.

Tuontimalleilla, joissa kaikki tiedot on tallennettu Vertipaq-välimuistiin, Power BI luo tietorakenteen jokaiselle tavalliselle yhteydelle tietojen päivittämisen aikana. Tietorakenteet koostuvat kaikkien sarakkeiden ja sarakkeiden arvojen indeksoiduista yhdistämismäärityksistä, ja niiden tarkoituksena on nopeuttaa taulukoiden liittämistä kyselyn aikana.

Kyselyn aikana tavalliset yhteydet mahdollistavat taulukon laajentamisen . Taulukon laajentaminen johtaa virtuaalitaulukon luomiseen, kun siihen sisältyvät perustaulukon alkuperäiset sarakkeet ja laajennetaan ne liittyviin taulukoihin. Tuontitaulukoiden osalta taulukon laajentaminen tehdään kyselymoduulissa. DirectQuery-taulukoilla se tehdään lähdetietokantaan lähetetyssä alkuperäisessä kyselyssä (kunhan Oleta viite-eheys -ominaisuus ei ole käytössä). Kyselymoduuli toimii sitten laajennetun taulukon yhteydessä käyttäen suodattimia ja ryhmittelemällä laajennetun taulukon sarakkeiden arvojen mukaan.

Muistiinpano

Passiiviset yhteydet laajennetaan silloinkin, kun laskelma ei käytä suhdetta. Kaksisuuntaiset suhteet eivät vaikuta taulukon laajentamiseen.

Yksi moneen -yhteyksillä taulukolaajennus tapahtuu "monta"-puolelta "yksi"-puolelle käyttämällä LEFT OUTER JOIN semantiikkaa. Kun "monta"-puolen arvolle ei löydy vastaavaa "yksi"-puolen arvoa, "yksi"-puolen taulukkoon lisätään tyhjä virtuaalirivi. Tämä koskee vain tavallisia suhteita, ei rajoitettuja suhteita.

Taulukon laajentaminen tapahtuu myös lähderyhmän sisäisissä yksi yhteen -yhteyksissä, mutta semantiikkaa käyttämällä FULL OUTER JOIN . Tämä liitostyyppi varmistaa, että molemmille puolille lisätään tarpeen mukaan tyhjiä virtuaalirivejä.

Tyhjät virtuaalirivit ovat käytännössä tuntemattomia jäseniä. Tuntemattomat jäsenet edustavat viite-eheyden rikkomuksia, joissa "monta"-puolen arvolla ei ole vastaavaa "yksi"-puolen arvoa. Ihannetapauksessa näitä tyhjiä kohtia ei pitäisi olla olemassa. Ne voidaan poistaa puhdistamalla tai korjaamalla lähdetietoja.

Taulukon laajennus toimii seuraavassa animoidun esimerkin avulla.

Animoitu kaavio taulukon laajennuksesta.

Tässä esimerkissä malliin kuuluu kolme taulukkoa: Luokka, Tuote ja Myynti. Luokka-taulukko liittyy Tuote-taulukkoon yksi moneen -yhteydellä ja Tuote-taulukko liittyy Myynti-taulukkoon yksi moneen -yhteydellä. Luokka-taulukossaon kaksi riviä, Tuote-taulukko sisältää kolme riviä ja Myynti-taulukossa on viisi riviä. Ne ovat yhteensopivia arvoja kaikkien yhteyksien molemmin puolin, mikä tarkoittaa, että viite-eheyttä ei rikota. Esiin tulee kyselyn aikana laajennettu taulukko. Taulukko koostuu kaikkien kolmen taulukon sarakkeista. Se on käytännössä denormalisoitu perspektiivi kolmen taulukon sisältämiin tietoihin. Uusi rivi lisätään Myynti-taulukkoon, ja sillä on tuotantotunnusarvo (9), jolla ei ole vastaavaa arvoa Tuote-taulukossa. Se on viite-eheysrikkomus. Laajennetussa taulukossa uudella rivillä on arvot (Tyhjä) taulukoiden Luokka ja Tuote sarakkeille.

Rajoitetut suhteet

Malliyhteys on rajoitettu , kun taattua "yksi"-puolta ei ole. Rajoitettu suhde voi tapahtua kahdesta syystä:

  • Yhteys käyttää monta moneen -kardinaliteettityyppiä (vaikka yksi tai molemmat sarakkeet sisältävät yksilöllisiä arvoja).
  • Yhteys on lähderyhmien välinen (mikä on mahdollista vain yhdistelmämalleissa).

Seuraavassa esimerkissä on kaksi rajoitettua yhteyttä, molemmat merkitty L:llä. Yhteyksiin kuuluu monta moneen -yhteys, joka on Vertipaq-lähderyhmän sisäinen, ja yksi moneen -yhteys, joka on lähderyhmien välinen.

Yhdistelmämallin kaavio, joka koostuu kahdesta taulukosta, rajoitetut yhteydet merkittyinä.

Tuontimalleissa tietorakenteita ei koskaan luoda rajoitetuille yhteyksille. Tässä tapauksessa Power BI ratkaisee taulukkoliitokset kyselyn aikana.

Taulukon laajentamista ei koskaan tapahdu rajoitetuilla yhteyksillä. Taulukkoliitokset tehdään käyttämällä INNER JOIN semantiikkaa, ja tästä syystä tyhjiä virtuaalirivejä ei lisätä viite-eheysrikkomusten kompensoimiseksi.

Rajoitettuihin yhteyksiin liittyy muitakin rajoituksia:

  • DAX-funktiolla RELATED ei voi noutaa "yksi"-puolen sarakkeen arvoja.
  • Topologia rajoittaa rivitason suojauksen pakottamista.

Vihje

Power BI Desktop -mallinäkymässä voit tulkita suhteen rajoitetuksi. Rajoitettu suhde esitetään sulkumerkkien ( ) kanssa kardinaliteettiilmaisimien jälkeen.

Näyttökuva mallikaavion kahdesta taulukosta, joissa rajoitettu suhde on korostettuna.

Suhdepolun moniselitteisyyden selvittäminen

Kaksisuuntaiset yhteydet voivat tuoda käyttöön useita moniselitteisiä ja siten moniselitteisiä suodattimien levityspolkuja mallitaulukoiden välillä. Moniselitteisyyttä arvioitaessa Power BI valitsee suodattimen levityspolun prioriteetin ja painon mukaan.

Prioriteetti

Prioriteettitasot määrittävät sääntöjen sarjan, jota Power BI käyttää yhteyspolun moniselitteisyyden ratkaisemiseksi. Ensimmäinen sääntövastaavuus määrittää polun, jota Power BI seuraa. Jokainen alla oleva sääntö kuvaa sitä, miten suodattimet kulkevat lähdetaulukosta kohdetaulukkoon.

  1. Polku, joka koostuu yksi moneen -suhteista.
  2. Polku, joka koostuu yksi moneen- tai monta moneen -suhteista.
  3. Polku, joka koostuu monta yhteen -suhteista.
  4. Polku, joka koostuu yksi moneen -suhteista lähdetaulukosta välitaulukkoon ja monta yhteen -yhteydet välitaulukosta kohdetaulukkoon.
  5. Polku, joka koostuu yksi moneen- tai monta moneen -suhteista lähdetaulukosta välitaulukkoon, jota seuraa monta yhteen- tai monta moneen -yhteydet välitaulukosta kohdetaulukkoon.
  6. Mikä tahansa muu polku.

Kun suhde sisältyy kaikkiin käytettävissä oleviin polkuihin, se poistetaan huomioita kaikista poluista.

Paino

Jokaisella polun yhteydellä on painoarvo. Oletusarvoisesti kunkin suhteen painoarvo on sama, ellei USERELATIONSHIP-funktiota käytetä. Polun painotus on polun kaikkien suhteiden enimmäispainot. Power BI käyttää polkupainoja moniselitteisyyden selvittämiseen saman prioriteettitason useiden polkujen välillä. Se ei valitse polkua, jolla on pienempi prioriteetti, mutta se valitsee polun, jolla on suurempi painoarvo. Polun yhteyksien määrä ei vaikuta painoon.

Voit vaikuttaa suhteen painotukseen käyttämällä USERELATIONSHIP-funktiota . Paino määräytyy tämän funktion kutsun sisäkkäisen tason mukaan, jossa sisin kutsu saa suurimman painon.

Katso seuraavaa esimerkkiä. Product Sales -mittari määrittää sales[ProductID]-ja Product[ProductID]-mittarien suhteelle korkeamman painon, jota seuraa Inventory[ProductID]-ja Product[ProductID]-suhde.

Product Sales = 
CALCULATE(
    CALCULATE(
        SUM(Sales[SalesAmount]), 
        USERELATIONSHIP(Sales[ProductID], Product[ProductID])
    ),
    USERELATIONSHIP(Inventory[ProductID], Product[ProductID])
)

Muistiinpano

Jos Power BI havaitsee useita polkuja, joilla on sama prioriteetti ja sama paino, se palauttaa moniselitteisen polun virheen. Tässä tapauksessa moniselitteisyys on ratkaistava vaikuttamalla suhteiden painoarvoihin USERELATIONSHIP-funktiolla tai poistamalla tai muokkaamalla mallien suhteita.

Suorituskykyasetus

Seuraavassa luettelossa suodattimen levityksen suorituskyky on järjestyksessä nopeimmasta hitaimpaan:

  1. Lähderyhmän sisäiset yksi moneen -suhteet
  2. Monta moneen -malliyhteydet, jotka on saavutettu välittäjätaulukon avulla ja joihin liittyy vähintään yksi kaksisuuntainen suhde
  3. Monta moneen -kardinaliteettiyhteydet
  4. Lähderyhmien väliset suhteet

Lisätietoja tästä artikkelista saat seuraavista resursseista: