Jaa


Kaksisuuntaisen suhteen ohjeet

Tämä artikkeli koskee tietojen mallintajaa, joka käsittelee Power BI Desktopia. 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 suosittelemme kaksisuuntaisten suhteiden käytön minimointia. Ne voivat heikentää mallikyselyn suorituskykyä ja mahdollisesti aiheuttaa raporttisi käyttäjille hämmentäviä kokemuksia.

Kaksisuuntainen suodatus voi 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. Koko keskustelu ja vaihtoehtoisia malleja on ohjeaiheessa Yksi-yhteen-suhteen ohjeet.
  • Monta moneen: Kun suhde koskee kahta dimensiotyyppistä taulukkoa, tarvitaan välitaulukko. Kaksisuuntaisen suodattimen avulla varmistetaan, että suodattimet leviävät välitaulukon kautta. Lisätietoja on artikkelissa Monta-moneen-suhteen ohjeet (Liitä monta-moneen-dimensiot).

Osittajan kohteet, "joissa on tietoja"

Kaksisuuntaiset suhteet voivat toimittaa osittajia, jotka rajaavat kohteet siellä, missä on tietoja. (Jos tunnet Excelin pivot-taulukot ja osittajat, tämä 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.

Kaavio, joka näyttää kolme taulukkoa sisältävän mallin. Rakenne kuvataan seuraavassa kappaleessa.

Ensimmäisen taulukon nimi on Customer, ja siinä on kolme saraketta: Country-Region, Customer ja CustomerCode. Toisen taulukon nimi on Product, ja siinä on kolme saraketta: Color, Product ja SKU. Kolmannen taulukon nimi on Sales, ja siinä on neljä saraketta: CustomerCode, OrderDate, Quantity ja SKU. Customer- ja Product-taulukot ovat dimensiotyyppisiä taulukoita, ja kummallakin 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.

Muistiinpano

Taulukon rivejä ei voi näyttää Power BI Desktop -mallikaaviossa. Tässä artikkelissa niin on kuitenkin tehty, jotta voidaan antaa selkeitä esimerkkejä keskustelun tueksi.

Kaavio, joka näyttää, että malli näyttää nyt taulukon rivit. Rivien tiedot kuvataan seuraavassa kappaleessa.

Kolmen taulukon rivien tiedot kerrotaan seuraavassa luettelossa:

  • Asiakas-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 January 1 2019, CustomerCode CUST-01, SKU CL-01, Quantity 10
    • OrderDate February 2 2019, CustomerCode CUST-01, SKU CL-02, Quantity 20
    • OrderDate March 3 2019, CustomerCode CUST-02, SKU CL-01, Quantity 30

Tutustu sitten seuraavaan raporttisivuun.

Kaavio, joka näyttää kolme visualisointia sisältävän raporttisivun. Ne kuvataan seuraavassa kappaleessa.

Sivulla on kaksi osittajaa ja kortin visualisointi. Ensimmäinen osittaja liittyy kohteeseen Country-Region , ja siinä on kaksi kohdetta: Australia ja United States. Tällä hetkellä osittaa osittajan Australian mukaan. Toinen osittaja liittyy kohteeseen Product, ja siinä on kolme kohdetta: 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 Product-osittajan näyttämään kohteet, joiden tiedot liittyvät Australian myyntiin. Tätä tarkoitetaan näyttämällä osittajakohteet, "joissa on tietoja". Voit toteuttaa tämän toiminnan määrittämällä Product- ja Sales-taulukoiden välisen suhteen suodattamaan molempiin suuntiin.

Kaavio, joka näyttää mallin, jonka mukaan Product- ja Sales-taulukoiden välinen suhde on nyt kaksisuuntainen.

Product-osittaja näyttää nyt yhden kohteen: T-shirt. Tämä kohde edustaa ainoaa australialaisille asiakkaille myytyä tuotetta.

Kaavio, joka näyttää kolme visualisointia sisältävän raporttisivun Product korostettuna. Ne kuvataan seuraavassa kappaleessa.

Suosittelemme harkitsemaan huolellisesti, sopiiko tämä rakenne raporttisi käyttäjille. Jotkut raportin käyttäjät pitävät käyttökokemusta hämmentävänä. He eivät ymmärrä, miksi osittajakohteita tulee näkyviin tai katoaa dynaamisesti, kun he käsittelevät muita osittajia.

Jos päätät näyttää osittajakohteet, "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ä mallissasi kasvaa.

Saman tuloksen voi saavuttaa paremmallakin tavalla: Kaksisuuntaisten suodattimien sijasta voit käyttää visualisointitason suodatinta itse Product-osittajaan .

Ajatellaan, että Product- ja Sales-taulukon 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ää Product-osittajan kohteet, "joissa on tietoja", osittaja tulee vain suodattaa Total Quantity -mittarin mukaan käyttämällä ehtoa "ei ole tyhjä".

Kaavio, josta näkyy, että Product-osittajan Suodattimet-ruutu suodattaa nyt

Dimensioiden ja dimension analyysi

Toinen kaksisuuntaisiin suhteisiin liittyvä skenaario käsittelee faktatyyppistä taulukkoa välitaulukkona. Näin se tukee dimensiotyypin taulukkotietojen analysointia toisen dimensiotyyppisen taulukon 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ä faktatyyppisessä välitaulukossa tehdään yhteenvetoa. Ne kuitenkin edellyttävät, että suodattimet välitettävät yhdestä dimensiotyyppisestä taulukosta toiseen. Kun suodattimet välitetään faktatyyppisen taulukon kautta, dimensiotyyppisten taulukkosarakkeiden yhteenveto voidaan tehdä käyttämällä DAX-funktiota DISTINCTCOUNT – sekä mahdollisesti DAX-funktioita MIN ja MAX .

Faktatyyppinen taulukko toimii välitaulukkona, joten voit seurata monta-moneen-suhteen ohjeita siitä, miten kaksi ulottuvuustyyppistä taulukkoa liitetään. Vähintään yksi suhde on määritettävä suodattamaan molempiin suuntiin. Lisätietoja on artikkelissa Monta-moneen-suhteen ohjeet (Liitä monta-moneen-dimensiot).

Kuten tässä artikkelissa on kuitenkin jo kuvattu, tällainen rakenne heikentää luultavasti suorituskykyä sekä vaikuttaa käyttäjäkokemukseen, joka liittyy osittajan kohteisiin, "joissa on tietoja". On siis suositeltavaa aktivoida kaksisuuntainen suodatus mittarimäärityksessä käyttämällä sen sijaan DAX-funktiota CROSSFILTER . CROSSFILTER-funktiolla voidaan lausekkeen arvioinnin aikana muokata suodatuksen ohjeita – tai jopa poistaa suhde 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
    )
)

Kun Different Countries Sold -mittarilauseketta arvioidaan, 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ää.

Kaavio, joka näyttää, että taulukon visualisoinnissa näkyy kaksi tuotetta.

Saat lisätietoja tähän artikkeliin liittyen tutustumalla seuraaviin resursseihin: