Päivämäärätaulukon luominen LuckyTemplatesissa
Ota selvää, miksi LuckyTemplatesissa on tärkeää pitää oma päivämäärätaulukko ja opi nopein ja tehokkain tapa tehdä se.
Tässä opetusohjelmassa tarkastelemme analyysipalveluiden toista moottoria – tallennusmoottoria.
Keskustelimme huipputason moottorista, aiemmassa opetusohjelmassa. Kun käyttäjät ymmärtävät, kuinka nämä molemmat moottorit toimivat, on helpompi optimoida ja parantaa DAX-kyselyjesi suorituskykyä.
Tallennusmoottorin päätarkoitus on työskennellä suoraan tietokannan kanssa.
Kaavamoottorilla ei ole suoraa pääsyä tietokantaan, joten se kulkee yleensä tallennusmoottorin läpi tätä tarkoitusta varten.
Tallennusmoottoria on kahta tyyppiä: tuontitila ja DirectQuery . Voit yhdistää ja yhdistää molempia tyyppejä samassa tietomallissa luodaksesi yhdistelmämallin.
Sisällysluettelo
Työskentely tuontitilan kanssa tallennusmoottorissa
Puhutaanpa ensin tuontitilasta. Tämä tunnetaan myös yleisesti nimellä Vertipaq, mutta sitä kutsutaan myös nimellä xVelocity tai In Memory Columnar Database.
Tuontitilan toiminnassa on neljä tärkeää asiaa.
Ensin Vertipaq luo tiedoista kopion suoraan tietolähteestä ja tallentaa sen RAM-muistiin pakatussa muodossa .
Toiseksi tuontitilassa käsitellyt tiedot perustuvat viimeiseen päivitystoimintoon . Tämä tarkoittaa, että jos päivitit tietosi viimeksi viime viikolla, käsittelemäsi tiedot ovat edelleen samoja tietoja viime viikolta. Tämä on erityisen tärkeää, jos käytät yhdistelmäkokoonpanoa, jossa yksi taulukko on tuontitilassa ja toinen DirectQuery-tilassa.
Oletetaan, että sinulla on viime viikolla päivitetty Tuotteet-taulukko tuontitilassa. Mitä tulee myyntitaulukkoon, päätit käyttää sen DirectQueryn kautta sen koon vuoksi. Oletetaan myös, että luot raportin molempien taulukoiden perusteella, joihin tuot Brändi-sarakkeen, ja luot kokonaismyyntimittauksen samaan myyntitaulukkoon. Haluat myös visualisoida Myynnin määrän brändin perusteella.
Sinun on ensin päivitettävä tuontitilasta tulevat tiedot, koska saatat saada tuoreita ja päivitettyjä tietoja DirectQuerysta ja vanhentuneita tietoja Vertipaqista. Tämä jättää muutaman tyhjän rivin matriisiin ja visualisointiin.
Seuraava asia, jonka sinun on tiedettävä Vertipaqista, on se, että vain perustoiminnot, kuten , , tai ovat natiivisti saatavilla . Tämä tarkoittaa, että jos kyselysuunnitelmaan sisältyy muita monimutkaisempia toimintoja, tallennuskoneen on kutsuttava kaavamoottori ratkaistakseen tämän koodin osan.
Lopuksi tallennusmoottori on erittäin optimoitu tietokanta Vertipaqin sarakerakenteen vuoksi . Tämä tarkoittaa, että kaikki tiedot tallennetaan sarake sarakkeelta eikä rivi riviltä. Tämän rakenteen ansiosta Vertipaq on aina nopeampi kuin DirectQuery-yhteys, vaikka luot indeksejä relaatiotietomallissasi.
Työskentely DirectQueryn kanssa tallennuskoneessa
Seuraava vaihtoehto, joka meillä on LuckyTemplates-analyysipalveluissa, on DirectQuery. Jos käytät DirectQuery-yhteyttä, analyysipalvelut toimivat vain kaavamoottorin lähettämien kyselyiden läpivientinä.
Oletetaan siis, että kirjoitat kyselyn. Kaavamoottori luo kyselysuunnitelman. Sitten se välittää kyselyn tallennuskoneeseen, joka on jo käännetty tietokannan äidinkielelle. Useimmiten nämä kyselyt tulevat SQL:llä.
Jos kysely käyttää DirectQuerya, odota sen olevan aina ajan tasalla. Sinun ei tarvitse huolehtia siitä, milloin olet viimeksi päivittänyt tiedot.
DAX-koodin ja tietomallin optimointiprosessi riippuu myös siitä, kuinka relaatiotietokanta on luotu. Jos sarakkeissasi on indeksejä, kyselysi optimoidaan aina. Mutta jos tietokantaasi ei ole optimoitu raporttien luomiseen käyttämällä analyysipalveluita tai LuckyTemplatesia, saatat kohdata muutamia suorituskykyhaasteita. Ole siis tarkoituksellinen tehdessäsi tietokantojasi raporttien kehittämistä varten.
Työskentely komposiittimallien kanssa
Kolmas vaihtoehto on luoda yhdistelmämalli, jotta sinulla voi olla yksi taulukko tuontitilassa ja toinen taulukko DirectQueryssa.
Kun käytät kahta taulukkoa eri lähteistä, kaavamoottori lähettää yhden pyynnön Vertipaqille ja toisen pyynnön DirectQuery-tietolähteeseen. Molemmissa tapauksissa analyysipalvelut myös hakevat datavälimuistin sekä Vertipaqista että DirectQuerysta. Kaavamoottori käyttää sitten JOIN-toimintoa,, tai mikä tahansa iteraatio molemmissa datavälimuistissa ennen tulosten toimittamista loppukäyttäjälle.
Oletetaan siis, että yrität visualisoida raportissasi myynnin määrän tuotteen tuotemerkin mukaan. Kaavamoottori lähettää pyynnön Vertipaqille, josta se hakee tuotteen, brändin ja tuoteavaimen. Sitten se yrittää hakea DirectQuerysta myynnin, nettohinnan, myyntimäärän ja myyntituoteavaimen.
Kun sillä on kaksi tuoteavaimeen perustuvaa datavälimuistia, se yhdistää kaksi tietovälimuistia ja laskee kokonaismyyntimäärän. Sitten se esittää tulokset loppukäyttäjälle.
Muita kriittisiä kohtia tallennusmoottorista
Nyt kun olemme käsitelleet sen eri tyyppejä, on muutamia muita tärkeitä tekijöitä, jotka sinun on tiedettävä tallennusmoottorista, jotta voit optimoida DAX-kyselysi.
Kuten olen aiemmin maininnut, tallennuskone toimittaa datavälimuistin takaisin kaavamoottorille pakkaamattomana tietovälimuistina. Kun olet tuontitilassa, Vertipaqille prosessissa takaisin lähetettävä pyyntö suoritetaan xmSQL-kielellä.
XmSQL-kieli on jossain määrin samanlainen kuin SQL, mutta ei täysin sama. Aiomme puhua xmSWL:stä yksityiskohtaisesti, kun puhumme kyselysuunnitelmista toisessa opetusohjelmassa.
On myös tärkeää muistaa, että tallennusmoottori käyttää kaikkia prosessorissasi olevia ytimiä. Mahdollisuus käyttää useita ytimiä on hyödyllistä, jos tietomallissasi on useita segmenttejä.
Oletetaan, että sinulla on LuckyTemplatesissa taulukko, jossa on 12 miljoonaa riviä. Tämä taulukko jaetaan sitten 12 segmenttiin, koska sekä Power Pivotissa että LuckyTemplatesissa kuhunkin segmenttiin mahtuu miljoona riviä. Tämä on toisin kuin analyysipalveluissa yleensä, joissa yhteen segmenttiin mahtuu 8 miljoonaa riviä.
Joten jos minulla on kuusi ydintä prosessorissani, kaikki kuusi ydintä skannaavat kuusi ensimmäistä 12 segmentistä samanaikaisesti. Kun ne on tehty, ne siirtyvät seuraaviin kuuteen osioon.
Mutta jos työskentelen analyysipalveluiden kanssa, joissa oletussegmentissä on 8 miljoonaa riviä, kuudesta ytimestäni käytetään vain kahta – yksi segmentti käsittelee 8 miljoonaa riviä ja toinen 4 miljoonaa.
Monimutkaisten kyselyiden käsittely
Aiemmin mainitsin, että tuontitila tukee vain perustoimintoja, kuten MIN, MAX, SUM, COUNT ja GROUPBY. Mitä sitten tapahtuu, jos työskentelet monimutkaisempien kyselyiden parissa?
Oletetaan, että päätät käyttää IF-lausetta rivikontekstissa tai sisäkkäistä iteraatiota, kuten SUMX, Tuotteet- ja Myyntitaulukoiden päällä.
Tässä tapauksessa tallennuskone ei pysty ratkaisemaan kyselyä itse. Sen jälkeen se kutsuu kaavamoottoria, joka alkaa ratkaista monimutkaisen laskennan rivi riviltä tallennuskoneen sisällä. Jotkut saattavat ajatella, että tämä on suotuisa skenaario, jossa molemmat moottorit toimivat yhdessä - mutta tämä on kaukana totuudesta.
Näet, kun näin tapahtuu, tallennuskoneen tuottamaa tietovälimuistia ei voida tallentaa välimuistiin, jos kyseisessä kyselyssä on callbackdataID. Joten jos päivität visuaalisen kuvan, sekä kaavamoottorin että tallennusmoottorin on suoritettava sama laskenta, vaikka suoritit juuri saman kyselyn muutama sekunti sitten. Tämä johtaa suorituskykyviiveisiin ja huonoon käyttökokemukseen.
Huomaa myös, että tallennuskone ei tiedä, suoritettiinko kyselyt DAX:n vai MDX:n avulla. Kuten aiemmin mainitsimme, kaavamoottorin tehtävänä on muuntaa kyselyt oikealle kielelle ennen kyselysuunnitelman välittämistä.
Lopuksi kaavamoottori lähettää kyselyt tallennuskoneeseen yksitellen. Tämä tarkoittaa, että useiden segmenttien käyttäminen on todellakin parempi, jotta Vertipaqin kokonaisskannausaikaa voidaan lyhentää, kun useita segmenttejä skannataan samanaikaisesti.
Johtopäätös
Tallennusmoottorin läpikotaisin ymmärtäminen auttaa todella optimoimaan DAX-kyselyjäsi, varsinkin jos käytät DAX Studiota. Jos olet käynyt läpi myös kaavamoottoria selittävän opetusohjelman, voit tehdä parempia päätöksiä tehokkaampien kyselyjen luomisesta.
Vaikka kaavamoottori toimii huipputason moottorina, ei ole epäilystäkään siitä, etteikö se voi toimia yhtä hyvin, jos emme maksimoi molempia moottoreita.
Kaikki parhaat,
Ota selvää, miksi LuckyTemplatesissa on tärkeää pitää oma päivämäärätaulukko ja opi nopein ja tehokkain tapa tehdä se.
Tämä lyhyt opetusohjelma korostaa LuckyTemplates-mobiiliraportointiominaisuutta. Näytän sinulle, kuinka voit kehittää raportteja tehokkaasti mobiililaitteille.
Tässä LuckyTemplates Showcase -esittelyssä käymme läpi raportteja, jotka näyttävät ammattitaitoisen palveluanalytiikan yritykseltä, jolla on useita sopimuksia ja asiakkaiden sitoumuksia.
Käy läpi tärkeimmät Power Appsin ja Power Automaten päivitykset sekä niiden edut ja vaikutukset Microsoft Power Platformiin.
Tutustu joihinkin yleisiin SQL-toimintoihin, joita voimme käyttää, kuten merkkijono, päivämäärä ja joitain lisätoimintoja tietojen käsittelyyn tai käsittelyyn.
Tässä opetusohjelmassa opit luomaan täydellisen LuckyTemplates-mallin, joka on määritetty tarpeidesi ja mieltymystesi mukaan.
Tässä blogissa esittelemme, kuinka kerrostat kenttäparametreja pienillä kerroilla uskomattoman hyödyllisten näkemysten ja visuaalien luomiseksi.
Tässä blogissa opit käyttämään LuckyTemplates-sijoitus- ja mukautettuja ryhmittelyominaisuuksia näytetietojen segmentoimiseen ja luokitteluun kriteerien mukaan.
Tässä opetusohjelmassa käsittelen tiettyä tekniikkaa, jolla voit näyttää kumulatiivisen kokonaissumman LuckyTemplates-visuaaleissasi vain tiettyyn päivämäärään asti.
Opi luomaan ja mukauttamaan Bullet-kaavioita LuckyTemplatesissa, joita käytetään pääasiassa suorituskyvyn mittaamiseen suhteessa tavoitteeseen tai edellisiin vuosiin.