Zníženie kardinality

Dokončené

Kardinalita je termín, ktorý sa používa na popísanie jedinečnosti hodnôt v stĺpci. Kardinalita sa používa aj v kontexte vzťahov medzi dvoma tabuľkami, kde popisuje smer vzťahov.

Identifikácia úrovní kardinality v stĺpcoch

Keď ste používali Editor Power Query Editor na analýzu metaúdajov, možnosť Distribúcia stĺpcov na karte Zobrazenie zobrazila štatistiku o počte rozdielnych a jednoznačných položiek v každom stĺpci s údajmi.

  • Počet rozličných hodnôt – celkový počet rozličných hodnôt, ktoré sa našli v určenom stĺpci.

  • Počet jedinečných hodnôt – celkový počet jedinečných hodnôt, ktoré sa našli v určenom stĺpci.

Snímka obrazovky so štatistikou distribúcie stĺpcov.

Stĺpec, ktorý obsahuje veľa opakovaných hodnôt vo svojom rozsahu (počet jedinečných hodnôt je nízky) bude mať nízku úroveň kardinality. Naopak, ktorý obsahuje veľa jedinečných hodnôt vo svojom rozsahu (počet jedinečných hodnôt je vyšší) bude mať vysokú úroveň kardinality.

Nižšia kardinalita vedie k optimalizovanejšiemu výkonu, takže možno budete musieť znížiť počet stĺpcov s vysokou kardinalitou v sémantickom modeli.

Zníženie kardinality vzťahov

Pri importovaní viacerých tabuliek je možné, že budete musieť vykonať niektoré analýzy použitím údajov zo všetkých týchto tabuliek. Vzťahy medzi týmito tabuľkami sú nevyhnutné na vypočítanie presných výsledkov a zobrazenie správnych informácií vo vašich zostavách. Power BI Desktop pomáha vytváranie uvedených vzťahov zjednodušiť. Vo väčšine prípadov nepotrebujete robiť nič, funkcia automatického zisťovania to urobí za vás. Je však možné, že miestami budete musieť vytvárať vzťahy alebo vzťahy upravovať. Okrem toho je potrebné, aby ste vzťahom v aplikácii Power BI Desktop rozumeli a vedeli, ako sa vytvárajú aj upravujú.

Po vytvorení alebo úprave vzťahu môžete konfigurovať jeho ďalšie možnosti. Predvolene Power BI Desktop automaticky nakonfiguruje ďalšie možnosti na základe optimalizovaného odhadu, ktorý sa môže líšiť pre každý vzťah podľa údajov, ktoré sú obsiahnuté v stĺpci.

Vzťahy môžu mať rôznu kardinalitu. Kardinalita predstavuje smerovanie vzťahov a každý vzťah v rámci modelu musí mať zadefinovaný typ kardinality. Možnosti kardinality v službe Power BI sú:

  • Vzťah mnohého k jednému (*:1) – najbežnejší vzťah, typ predvoleného. Znamená to, že stĺpce v jednej tabuľke môže mať viac výskytov istej hodnoty a iná súvisiaca tabuľka, zvyčajne známa ako vyhľadávacia, má len jeden výskyt hodnoty.

  • Jedno k jednému (1:1) – v tomto type vzťahu má stĺpec v jednej tabuľke jeden výskyt konkrétnej hodnoty a iná súvisiaca tabuľka má tiež jeden výskyt danej hodnoty.

  • Vzťah jedného k mnohému (1:*) – v tomto type vzťahu má stĺpec v jednej tabuľke jeden výskyt konkrétnej hodnoty a súvisiaca tabuľka má viac výskytov danej hodnoty.

  • Vzťah viacerých entít k viacerým iným (:) – u kompozitných modelov môžete ustanoviť vzťah typu „Vzťah viacerých entít k viacerým iným“, čím sa odstránia požiadavky na jedinečné hodnoty v tabuľkách. Týmto sa odstránia aj predchádzajúce riešenia, ktoré sa vyžadovali napríklad na vytvorenie vzťahov (vytvorením nových tabuliek).

Počas vývoja vytvárate a upravujete vzťahy vo svojom modeli, takže pri vytváraní nových vzťahov vo svojom modeli bez ohľadu na vybratú kardinalitu skontrolujte, či oba stĺpce, ktoré vo vzťahu používate, zdieľajú rovnaký typ údajov. Váš model nebude nikdy funkčný, ak sa pokúsite vytvoriť vzťah medzi dvoma stĺpcami, kde jeden stĺpec obsahuje textové údaje a iný stĺpec celočíselné.

V nasledujúcom prípade obsahuje pole ProductID typ údajov Celé číslo v tabuľkách Výrobok a Predaj. Stĺpce, ktorých údaje sú celočíselné majú lepší výkon ako stĺpce, ktoré obsahujú text.

Snímka obrazovky znázorňujúca, ako skontrolovať typ údajov ProductID.

Zlepšenie výkonu znížením úrovní kardinality

Power BI Desktop ponúka rôzne techniky, ktoré môžete použiť na zníženie množstva údajov, ktoré sa načítajú do sémantických modelov, ako je napríklad sumarizácia. Znížením počtu údajov, ktoré sa načívatajú do modelu, sa vylepší kardinalita vzťahov v zostave. Preto je dôležité, aby ste sa snažili počet údajov načítavaných do svojich modelov minimalizovať. Platí to najmä pre veľké modely alebo modely, u ktorých sa predpokladá rast v čase.

Pravdepodobne najefektívnejšou technikou zníženia veľkosti modelu je použitie tabuľky súhrnu zo zdroja údajov.  Tam, kde podrobná tabuľka môže obsahovať každú transakciu, tabuľka súhrnu obsahuje jeden záznam na deň, týždeň alebo mesiac. Môže ísť napríklad o priemer všetkých transakcií za deň.

Napríklad tabuľka obsahujúca zdrojové fakty týkajúce sa predaja obsahuje ukladá jeden riadok pre každú líniu objednávok. Výrazné zníženie počtu údajov môžete dosiahnuť tak, že zosumarizujete všetky metriky predaja ich zoskupením podľa dátumu, zákazníka, produktu, a už nebudú potrebné presné údaje o každej transakcii.

Zoberme si teda, že by bolo možné dosiahnuť ešte výraznejšie zníženie údajov zoskupením podľa dátumu na úrovni mesiaca. Výsledkom môže byť až 99-percentná redukcia veľkosti modelu, avšak vykazovanie na úrovni dňa či na úrovni jednotlivých objednávok už nebude možné. Súčasťou rozhodnutia sumarizovať údaje podľa typu je aj kompromis týkajúci sa úrovne podrobností údajov. Nevýhodou je, že môžete stratiť možnosť podrobnej analýzy údajov, pretože tieto už nebudú existovať.  Potrebu kompromisu môžete vyvážiť použitím návrhu zmiešaného modelu.

V aplikácii Power BI Desktop vytvorí návrh zmiešaného modelu model kompozitný. V podstate vám to umožní určiť režim ukladacieho priestoru každej tabuľky. Preto má každá tabuľka nastavenú vlastnosť Režim ukladacieho priestoru ako Importovať alebo DirectQuery.

Efektívnym spôsobom zníženia veľkosti modelu je nastavenie Režimu ukladacieho priestoru pre väčšie tabuľky obsahujúce fakty na DirectQuery. Tento prístup funguje v spojení s technikami používanými na sumarizáciu údajov. Napríklad sumarizované údaje o predaji je možné použiť na dosiahnutie vykazovania s vysokým výkonom sumarizácie. Na zobrazenie predajov na rôznych úrovniach je možné vytvoriť stránku s podrobnými údajmi týkajúcimi sa konkrétneho filtrovaného kontextu (presne špecifikovaného), v ktorom sa zobrazujú všetky predajné objednávky súvisiace s daným kontextom. Stránka s podrobnosťami bude obsahovať vizuály založené na tabuľke DirectQuery a bude slúžiť na načítanie údajov predajných objednávok (podrobnosti predajných objednávok).

Ďalšie informácie nájdete v časti Techniky zníženia počtu údajov pre modelovanie importu.