Kaksisuuntaisen suhteen ohjeet
Tämä artikkeli koskee tietojen mallintajaa, joka työskentelee Power BI Desktopin kanssa. Artikkelissa on ohjeita siitä, milloin tulee luoda kaksisuuntaiset mallisuhteet. Kaksisuuntainen suhde on suhde, jossa suodatetaan molempiin suuntiin.
Muistiinpano
Tämä artikkeli ei johdata malliyhteyksiin. Jos et ole täysin perehtynyt suhteisiin, niiden ominaisuuksiin tai niiden määrittämiseen, suosittelemme, että luet ensin Mallien suhteet Power BI Desktopissa -artikkelin.
On myös tärkeää, että ymmärrät tähtirakenteen suunnittelun. Lisätietoja on kohdassa Tutustu tähtirakenteeseen ja sen merkitykseen Power BI:ssä.
Yleisesti ottaen on suositeltavaa vähentää kaksisuuntaisten suhteiden käyttöä. Tämä johtuu siitä, että ne voivat heikentää mallikyselyn suorituskykyä ja mahdollisesti aiheuttaa raporttisi käyttäjille hämmentäviä kokemuksia.
Kaksisuuntainen suodatus voi kuitenkin vastata tiettyihin vaatimuksiin kolmessa tilanteessa:
Erityiset mallisuhteet
Kaksisuuntaiset suhteet ovat tärkeässä roolissa, kun luodaan kahta seuraavaa erityistä mallisuhdetyyppiä:
- Yksi yhteen: Kaikkien yksi yhteen -suhteiden on oltava kaksisuuntaiisia – muulla tavalla niitä ei voi määrittää. Emme yleensä suosittele tällaisten suhteiden luomista. Täydelliset keskustelut ja vaihtoehtoiset suunnittelutavat ovat artikkelissa Yksi-yhteen-suhteen ohjeet .
- monta moneen -: Kahden dimensiotaulukonliittämiseen tarvitaan välitaulukko,. Kaksisuuntaisen suodattimen avulla varmistetaan, että suodattimet leviävät välitaulukon kautta. Jos haluat lisätietoja, katso monta moneen -suhteen ohjeet.
Osittajan asetukset "ja tiedot"
Kaksisuuntaiset suhteet voivat tarjota osittajia, jotka rajaavat vaihtoehtoja tietojen olemassa oleviin kohtiin. (Jos tunnet Excelin pivot-taulukot ja osittajat, se on oletustoiminta, kun tietoja hankintaan Power BI:n semanttisesta mallista tai Analysis Services -mallista.) Tutustu ensin seuraavaan mallikaavioon, joka auttaa selittämään, mitä se tarkoittaa.
Ensimmäisen taulukon nimi on Customer
., ja se sisältää kolme saraketta: Country-Region
, Customer
ja CustomerCode
. Toisen taulukon nimi on Product
, ja se sisältää kolme saraketta: Color
, Product
ja SKU
. Kolmannen taulukon nimi on Sales
, ja se sisältää neljä saraketta: CustomerCode
, OrderDate
, Quantity
ja SKU
.
Customer
- ja Product
-taulukot ovat dimensiotaulukoita, ja jokaisella on yksi moneen -suhde Sales
-taulukkoon. Kukin suhde suodattaa yhteen suuntaan.
Mallikaaviota on muokattu taulukon rivien paljastamiseksi, jotta voidaan kuvata kaksisuuntaisen suodatuksen toimintaa. Kaikki tämän artikkelin esimerkit perustuvat näihin tietoihin.
Kolmen taulukon rivien tiedot kerrotaan seuraavassa luettelossa:
-
Customer
taulukossa on kaksi riviä:-
CustomerCode
CUST-01,Customer
Customer-1,Country-Region
United States -
CustomerCode
CUST-02,Customer
Customer-2,Country-Region
Australia
-
-
Product
taulukossa on kolme riviä:-
SKU
CL-01,Product
T-shirt,Color
Green -
SKU
CL-02,Product
Jeans,Color
Blue -
SKU
AC-01,Product
Hat,Color
Blue
-
-
Sales
taulukossa on kolme riviä:-
OrderDate
1. tammikuuta 2019,CustomerCode
CUST-01,SKU
CL-01,Quantity
10 -
OrderDate
2. helmikuuta 2019,CustomerCode
CUST-01,SKU
CL-02,Quantity
20 -
OrderDate
3. maaliskuuta 2019,CustomerCode
CUST-02,SKU
CL-01,Quantity
30
-
Tutustu sitten seuraavaan raporttisivuun.
Sivulla on kaksi osittajaa ja kortin visualisointi. Ensimmäinen osittaja perustuu Country-Region
-kenttään, ja siinä on kaksi vaihtoehtoa: Australia ja Yhdysvallat. Tällä hetkellä osittaa osittajan Australian mukaan. Toinen osittaja perustuu Product
-kenttään, ja siinä on kolme vaihtoehtoa: Hat, Jeans ja T-shirt. Kohteita ei ole valittu (eli mitään tuotteita ei suodateta). Kortin visualisoinnissa näkyy määrä, joka on 30.
Kun raportin käyttäjät osittavat tiedot Australian mukaan, haluat ehkä rajoittaa tuoteosittajan näyttämään asetukset, joissa tiedot liittyvät Australian myyntiin. Tällöin näytetään osittajan vaihtoehdot , "joissa on tietoja". Voit toteuttaa tämän toiminnan määrittämällä Product
ja Sales
taulukoiden välisen suhteen suodattamaan molempiin suuntiin.
Tuotteen osittajassa on nyt yksi vaihtoehto: T-shirt. Tämä vaihtoehto edustaa ainoaa australialaisille asiakkaille myytyä tuotetta.
Suosittelemme harkitsemaan huolellisesti, sopiiko tämä rakenne raporttisi käyttäjille. Jotkin raportin käyttäjät pitävät käyttökokemusta hämmentävänä, koska he eivät ymmärrä, miksi osittaja-asetukset tulevat näkyviin tai katoavat dynaamisesti, kun he käsittelevät muita osittajia.
Jos päätät näyttää osittajan asetukset, "joissa on tietoja", emme suosittele kaksisuuntaisten suhteiden määrittämistä. Kaksisuuntaiset suhteet edellyttävät enemmän käsittelyä, joten ne voivat vaikuttaa negatiivisesti kyselyn suorituskykyyn – varsinkin kun kaksisuuntaisten suhteiden määrä mallissa kasvaa.
Saman tuloksen voi saavuttaa paremmallakin tavalla: Kaksisuuntaisten suodattimien sijasta voit käyttää visualisointitason suodatinta itse tuoteosittajaan.
Ajatellaan, että Product
ja Sales
taulukoiden välinen suhde ei enää suodata molempiin suuntiin. Lisäksi Sales
-taulukkoon on lisätty seuraava mittarimääritys.
Total Quantity = SUM(Sales[Quantity])
Jos haluat näyttää tuotteen osittajan asetukset, "joissa on tietoja", se on yksinkertaisesti suodatettava Total Quantity
mittarin mukaan käyttämällä ehtoa "ei ole tyhjä".
Dimensioiden ja dimension analyysi
Toisenlainen kaksisuuntaisiin suhteisiin liittyvä skenaario käsittelee faktataulukkoa kuin välitaulukkoa välitaulukkoa. Näin se tukee dimensiotaulukon tietojen analysointia toisen dimensiotaulukon suodatinkontekstissa.
Käytetään tämän artikkelin esimerkkimallia ja pohditaan, miten seuraaviin kysymyksiin voidaan vastata:
- Montako väriä australialaisille asiakkaille myytiin?
- Kuinka monesti maista tai alueista ostettiin farkkuja?
Molempiin kysymyksiin voidaan vastata ilman, että välitietotaulukon tiedoista tehdä yhteenvetoa. Ne kuitenkin edellyttävät, että suodattimet välitettävät yhdestä dimensiotaulukosta toiseen. Kun suodattimia välitetään faktataulukon kautta, dimensiotaulukon sarakkeiden yhteenveto voidaan tehdä käyttämällä DAX-funktiolla DISTINCTCOUNT – ja mahdollisesti DAX-funktiolla MIN-- ja MAX -funktioita.
Faktataulukon käyttäytyessä välitaulukkona voit käyttää monta moneen -suhteen ohjeita kahden dimensiotaulukon liittämiseen. Vähintään yksi suhde on määritettävä suodattamaan molempiin suuntiin. Jos haluat lisätietoja, katso monta moneen -suhteen ohjeet.
Kuten tässä artikkelissa on kuitenkin jo kuvattu, tämä rakenne vaikuttaa todennäköisesti haitallisesti suorituskykyyn ja vaikuttaa käyttäjäkokemukseen, joka liittyy osittaja-asetuksiin ,joissa on tietoja,. On siis suositeltavaa aktivoida kaksisuuntainen suodatus mittarimäärityksessä käyttämällä sen sijaan DAX-funktiota CROSSFILTER . CROSSFILTER-funktiolla voit lausekkeen arvioinnin aikana muokata suodatuksen ohjeita – tai jopa poistaa suhteen käytöstä.
Katso seuraavaa mittarimääritystä, joka lisättiin Sales
-taulukkoon. Tässä esimerkissä Customer
- ja Sales
-taulukoiden välinen mallisuhde on määritetty suodattamaan yhteen suuntaan .
Different Countries Sold =
CALCULATE(
DISTINCTCOUNT(Customer[Country-Region]),
CROSSFILTER(
Customer[CustomerCode],
Sales[CustomerCode],
BOTH
)
)
Different Countries Sold
mittarin arvioinnin aikana Customer
ja Sales
taulukoiden välinen suhde suodatetaan molempiin suuntiin.
Seuraavassa taulukossa esitetään kunkin myydyn tuotteen nykyiset tilastotiedot.
Quantity
sarake on yksinkertaisesti määräarvojen summa.
Different Countries Sold
-sarake edustaa kaikkien tuotteen ostaneiden asiakkaiden erillisten maa-alue-arvojen määrää.
Liittyvä sisältö
Saat lisätietoja tähän artikkeliin liittyen tutustumalla seuraaviin resursseihin: