Jak na vícejazyčné dimenze?
Jakub Haman, 24.8.2020Pokud zpracováváte reporty a přehledy pomocí Power BI, zaujme vás určitě článek, jak vyřešit vícejazyčné dimenze právě v tomto nástroji. Pokud s Power BI zatím nepracujete, čtěte také, mohlo by se vám to v budoucnu hodit.
Na začátek je potřeba si objasnit, co se vlastně myslí pojmem dimenze. Zjednodušeně řečeno jsou dimenze číselníky. Obvykle představují analytické nebo také popisné hledisko faktických informací. Pokud jste někdy použili funkci SVYHLEDAT v Excelu, tak jste pravděpodobně potřebovali k faktickým informacím dohledat popisné informace z číselníku nebo dohledat do jednoho číselníku informace z druhého číselníku. Příkladem dimenze může být číselník produktů s vazbou na tabulku prodejů, která obsahuje fakta viz Obrázek 1 (nezajímá nás pouze kód výrobku z tabulky prodejů, ale rádi bychom zjistili i jeho název, barvu, velikost atd…).
Obrázek 1: Tabulka Prodej ve vazbě s tabulkou Produkt
Dimenze zároveň souvisí s dimenzionálním modelováním, kde se vždy modeluje určitá datová struktura, která je vhodná pro analýzu dat. Toto modelování se často využívá v datových skladech nebo přímo u uživatele, který využívá standardní nástroje jako např. Excel nebo jiné self-service BI nástroje (Power BI, Tableau, Qlik Sense atd…). Mnohdy to uživatel ani netuší, ale pomocí Excelu a jeho funkcí si vytváří datový model, který pak agreguje pomocí kontingenčních tabulek nebo jiných funkcí. Z Excelu už je pak relativně snadná a rychlá cesta např. k aplikaci Power BI, kterou se budeme v rámci tohoto tutorialu zabývat. Konkrétně se budeme věnovat situaci, kdy máme v číselníku název produktu ve více jazycích, které potřebujeme v reportu přepínat pomocí parametru.
Obrázek 2: Modifikovaná tabulka Produkt, kde je název produktu ve více jazycích
V prostředí Power BI si ukážeme, jak vytvořit parametr, který poslouží k přepnutí jazykové varianty názvu produktu viz obrázek níže. Zároveň si ukážeme, jak spojit dvě tabulky již při jejich načítání. Příklad berme také jako ukázku tvorby parametrů v prostředí Power Query a jejich praktickou aplikaci.
Obrázek 3: Parametr se seznamem dostupných jazyků
Řešení vícejazyčné dimenze v nástroji Power BI pomocí parametru
Nejdříve je potřeba do nového souboru aplikace Power BI načíst dva zdrojové soubory Excelu. První, který obsahuje prodeje konkrétních produktů, tedy tabulku obsahující faktické informace, a druhý, který obsahuje popis produktů ve více jazycích. Soubory načteme klasickou cestou přes kartu Domovská stránka / Načíst data / Excel / Otevřít / Navigátor a příkaz Načíst (Obrázek 4).
Obrázek 4
Po načtení obou souborů může dojít k tomu, že mezi tabulkami automaticky vznikne relace. K tomu dochází za předpokladu, že máme v možnostech nástroje Power BI na kartě Načtení dat pro Aktuální soubor zaškrtnutou volbu Automaticky zjišťovat nové relace po načtení dat.
Tuto relaci odstraníme kliknutím přes pravé tlačítko myši na čáru symbolizující danou relaci a volbou možnosti Odstranit (Obrázek 5).
Obrázek 5: Odstranění relace
Po odstranění relace bychom v souboru měli mít načtené dvě nepropojené tabulky, ze kterých vytvoříme jednu obsahující veškeré informace. K tomuto sloučení dojde již v momentě, kdy se nám tabulky načítají. Načítání dat v nástroji Power BI je řešeno pomocí nástroje Power Query, který uživateli umožňuje zasáhnout do procesu načtení dat a upravit, co a v jaké podobě se má načíst. Mimo jiné Power Query umí i tabulky spojit pomocí klíčové hodnoty, která je obsažena v obou tabulkách. V tomto prostředí vytvoříme také parametr pro přepínání jazyků. Prostředí Power Query otevřeme pomocí příkazu Upravit dotazy na kartě Domovská stránka (Obrázek 6).
Obrázek 6: Příkaz Upravit dotazy pro spuštění prostředí Power Query
Power Query se otevře v novém okně, které je rozvrženo do čtyř hlavních částí, a to Karetní systém, Seznam dotazů, Náhled výsledku dotazu a Seznam kroků dotazu (Obrázek 7).
Obrázek 7: Hlavní části prostředí Power Query
Přes karetní systém a příkaz Spravovat parametry je potřeba otevřít správce parametrů a vytvořit novou položku parametrů. Ve správci parametrů klikneme pro vytvoření nové položky parametru na příkaz Nová a nadefinujeme jeho vlastnosti. Důležitými vlastnostmi, kterým je třeba věnovat pozornost, jsou zejména Název, Povinné (je vyžadováno vyplnění daného parametru), Typ (datový typ hodnoty parametru) a Navrhované hodnoty (volba typu vstupního pole parametru). Pro náš případ vyplníme do názvu parametru jazyk, zaškrtneme, že je povinný, Typ nastavíme na text a u Navrhovaných hodnot vybereme Seznam hodnot, kde vyplníme tři položky: CZ, EN, DE (Obrázek 8).
Obrázek 8: Tvorba parametru
Vytvořený parametr použijeme pro výběr sloupce s jazykem (v tabulce Produkt), který má být připojen k prodejům. Nyní máme vše připravené k vytvoření datového spojení tabulky Prodeje s tabulkou Produkt. Před vytvořením tohoto spojení vybereme tabulku Prodeje a tím určíme primární tabulku, ke které se druhá tabulka naváže. Na kartě Domovská stránka pak klikneme na příkaz Sloučit dotazy (Obrázek 9 - příkaz v pravo nahoře).
Obrázek 9: Příkaz Sloučit dotazy
V následném formuláři je potřeba vybrat druhou tabulku, která se má k primární tabulce připojit. V obou tabulkách je nutné vybrat sloupec přes který má ke spojení dojít. Po sloučení tabulek je dále potřeba vybrat sloupce z tabulky Produkt, které se mají zobrazit v tabulce Prodeje (Obrázek 10). V našem příkladu z tabulky produktů připojíme sloupec CZ, který obsahuje název produktu v češtině.
Obrázek 10: Tvorba spojení tabulek
Po spojení tabulek potřebujeme volbu jazyka svázat s parametrem. Pro tuto operaci je výhodné mít k dispozici řádek vzorců. Pokud jej nemáme, tak si jej můžeme zapnout přes kartu Zobrazení a zaškrtávací pole Řádek vzorců. Následně v dotazu, kde jsou sloučené obě tabulky, upravíme přes řádek vzorců zápis posledního kroku dotazu, kdy označení “CZ“ nahradíme v prvním výskytu názvem parametru (v našem případě jazyk) a v druhém výskytu obecnějším popisem (v našem případě nazev) viz Obrázek 11.
Obrázek 11: Parametrizace posledního kroku dotazu
Parametrizaci volby jazyka názvu produktu máme tímto hotovou. Nakonec je potřeba opustit prostředí Power Query a otestovat funkčnost parametru. Pro otestování si vytvoříme libovolný vizuál, kde použijeme sloupec nazev (obsahuje českou variantu názvu produktu) a mnozstvi (obsahuje počty prodaných kusů produktů). Jazyk je pak možné přepnout přes kartu Domovská stránka a šipkou pod příkazem Upravit dotazy, kde zvolíme příkaz Upravit parametry. Pak už pouze vybereme jazyk a máme hotovo (Obrázek 12).
Obrázek 12: Změna hodnoty parametru
Bc. Jakub Haman
Jakub působí již déle než 10 let jako odborný lektor počítačových dovedností. Je držitelem těchto odborných certifikátů a licencí: MOS Master (Microsoft Office Specialized), MCAS (Microsoft Certifited Aplication Specialized), GPT (Gopas Profesional Trainer), ECDL (Europien Computer Driving Licence). Od roku 2007 pracoval jako lektor v počítačové škole Gopas, dále zkušenosti získal během své práce pro Centrum AMAVET – Junior Brno a od roku 2010 také působí jako lektor počítačových školení ČD – Telematika. Již více než 7 let se zároveň věnuje realizaci projektů na zakázku, přičemž poslední 2 roky pro společnost Jacaliso s. r. o. Od roku 2013 vede odborné semináře ve společnosti Controller Institut.