Zápočtovka, Tvorba vizualizácií v nástroji Grafana

Ciele

  1. Absolvovať zápočtový test.
  2. Pokračovanie v práci s Grafanou.

Úvod

Dnešné cvičenie je primárne venované zápočtovej písomke. Písomka prebieha na moodle.

Termín pre opravnú zápočtovku bol určený na 12. týždeň. Upozorňujem, že pri hodnotení sa berie posledný pokus, tzn. ak sa rozhodnete pre opravný termín, tak sa bude brať hodnotenie z neho.

V rámci písomky dostanete 4 testové otázky teoretického charakteru z prvých prednášok po koniec selectov (tzn. po vnorené dopyty). Otázky sú buď testové s možnosťami (jedna a viac možných správnych odpovedí - aj keď je dovolené vybrať viacero správnych, ešte to neznamená, že otázka má viacero správnych odpovedí), alebo s krátkou odpoveďou (jeden textbox), kde je potrebné napísať napr. nejaké kľúčové slovo (napr. 'zadajte klauzulu (kľúčové slovo), pomocou ktorej viete vyfiltrovať záznamy výsledku selectu po zoskupení záznamov' bude mať odpoveď 'having').

Druhá časť bude praktická a v rámci nej bude potrebné vyriešiť 3 úlohy, kde riešením je SQL select. Odpoveď na otázku zadávate do moodlu, ktorý ju automaticky testuje voči vzorovej databáze. V rámci otázky bude definované, nad akou databázou pracovať, a otázka bude uvádzať aj informácie potrebné na pripojenie sa na vzorovú databázu, nad ktorou si môžete testovať svoje riešenie. Pri písomke teda môžete používať DataGrip. NIE JE DOVOLENÉ používať iné zdroje a samozrejme ani žiadnu komunikáciu, či už so spolužiakom, alebo kamarátom cez sociálne siete. Porušenie týchto pravidiel môže byť riešene disciplinárnou komisiou. Pozor, pri zadávaní selectu nesmiete vložiť žiadny komentár - iba samotný select.

Pred písomkou si zopakujte ako sa nastavuje pripojenie v DBeaver alebo DataGrip-e, pretože to zrejme budete potrebovať.

Postup

Krok 1

Úloha 1.1

Podľa pokynov sa prihláste do moodlu na test a vyriešte ho.

Poznámka

V odpovediach, kde je potrebné zadať SELECT, uvádzajte iba SELECT, bez ; na konci a bez nejakých komentárov.

Krok 2

Úloha 2.1

Na minulom cvičení ste vytvorili Váš prvý dashboard Program kín. Upravte tento dashboard tak, aby sa dal použiť ako program kín na 3 mesiace dopredu. To znamená, že chceme dáta filtrovať podľa stĺpca "datum". To docielime nasledovným zápisom: $__timeFilter(datum). Taktiež tento dashboard upravte tak, nech zobrazuje len stĺpce relevantné pre návštevníka kina, napr. mesto, názov kina, dátum, názov filmu, dĺžka filmu a cena lístka.

Dashboard Program kín
Obr. 1: Dashboard Program kín

Riešenie

SELECT mesto,
       kino,
       To_char(datum, 'DD.MM HH24:MI') AS datum,
       film,
       dlzka,
       cena
FROM   movies.v_program_kin
WHERE  $__timeFilter(datum)
ORDER  BY 1,
          2

Poznámka

Keďže nás zaujíma program, ktorý ešte len bude vysielaný od teraz na 3 mesiace dopredu, musíme si správne nastaviť časové rozpätie.

Nastavenie časového rozpätia
Obr. 2: Nastavenie časového rozpätia

Upozornenie

Keďže do databázy movies nie sú pribežné pridávané nové záznamy (pokiaľ si ich nepridáte sami) toto časové rozpätie (now - now+3M) nemusí vypísať program kín. V takom prípade si ako časové rozpätie nastavte dátumy od 1.3.2021 po 1.5.2021.

Poznámka

Aby sa nám tento time range zachoval ako predvolený, pri ukladaní dashboardu zaklikneme checkbox:

Nastavenie časového rozpätia
Obr. 3: Nastavenie časového rozpätia

Úloha 2.2

Doplňte filter na názov filmu. Ingorujte veľké a malé písmená.

Keďže chceme dáta filtorvať podľa názvu filmu, ktorý zadáme, musíme si vytvoriť premennú. Premennú vytvoríme kliknutím na nastavenia dashboardu v pravom hornom rohu.

Nastavenia dashboardu
Obr. 4: Nastavenia dashboardu

V ľavom menu prejdeme na položku Variables. Klikneme na Add variable.

Pridanie novej premennej
Obr. 5: Pridanie novej premennej

Premennú si môžeme pomenovať napríklad film. Jej typ je Text box.

Pridanie novej premennej
Obr. 6: Pridanie novej premennej

Po vytvorení premennej si môžte všimnúť, že pribudlo pole pre vstup. Teraz je nutné upraviť dotaz tak, aby zohľadnil túto skutočnosť a dáta vyfiltorval podľa zadaného názvu (bez ohľadu na veľkosť písmen).

SELECT mesto,
       kino,
       To_char(datum, 'DD.MM HH24:MI') AS datum,
       film,
       dlzka,
       cena
FROM   movies.v_program_kin
WHERE  $__timeFilter(datum) 
       AND Upper(film) LIKE Upper('%$film%')
ORDER  BY 1,
          2

Dashboard vyzerá nasledovne:

Výsledný dashboard
Obr. 7: Výsledný dashboard

Úloha 2.3

Podobným spôsobom doplňte do dashboardu filter na mesto. Táto premenná nech je typu Query. Umožnite výber viacerých miest naraz (Multi-value) a povoľte aj možnosť Include All option, ktorá označí všetky mestá. Mestá nech sa v drop-downe zobrazujú zoradené abecedne.

Riešenie

SELECT mesto,
       kino,
       To_char(datum, 'DD.MM HH24:MI') AS datum,
       film,
       dlzka,
       cena
FROM   movies.v_program_kin
WHERE  $__timeFilter(datum) 
       AND Upper(film) LIKE Upper('%$film%')
       AND mesto IN ($mesto)
ORDER  BY 1,
          2

Poznámka

V sekcii Query Options je nutné do poľa Query napísať jednoduchý dotaz na výber názvu miest (cit_name) z tabuľky c_city. Správnosť dopytu na výber miest si môžte overiť porovnaním Preview of values s tabuľkou c_city vo Vašej databáze.

Možné hodnoty premennej mesto
Obr. 8: Možné hodnoty premennej mesto

Výsledný dashboard
Obr. 9: Výsledný dashboard

Upozornenie

Po vypracovaní úloh z cvičenia prosím o vyplnenie nasledujúceho dotazníka.