Kateřina Tmějová: PRÁCE S DATY JEDNÉ JAZYKOVÉ ŠKOLY TAK, ABY Z BEZ LADU A SKLADU VZNIKL LAD A DATOVÝ SKLAD A ANALYTICKÝ GRAF





PRÁCE S DATY JEDNÉ JAZYKOVÉ ŠKOLY TAK, ABY Z BEZ LADU A SKLADU VZNIKL LAD A DATOVÝ SKLAD A ANALYTICKÝ GRAF

…Bože můj, do čeho jsem se to pustila…. Trochu monotematická věta posledních 14. dnů. Ze všech těch informací mi jde hlava kolem a nevím, do čeho bych se pustila dřív, abych z toho vůbec něco měla.
DIGITÁLNÍ AKADEMIE? Jasně, to mám za to, že jsem tak zvědavá a nedám si pokoj a musím furt něco a vůbec…


Víte, že maluju obrazy. No fakt.






A víte, že malování obrazů dost souvisí s navrhováním databází a datovou analýzou? No fakt fakt.

Nemůžu samozřejmě generalizovat, umělecké přístupy jsou různé, ale ten můj je takový. Když maluju obraz, maluju všechna místa obrazu zároveň. Vše na obraze spolu souvisí, je propojené, je ve vztahu. Barva v levé dolní části obrazu má vliv na to, co se děje nahoře a naopak. Tvary, barvy, děje jsou v rámci obrazu komplexní. Když přiložíte štětec na obraz, měníte nejen to konkrétní místo, ale celý obraz a tak musíte sledovat, co ta změna vyvolává a reagovat. Někdy se stane, že vás pár tahů štětcem v nějakém místě obrazu donutí přemalovat ho kompletně celý.

Prostě, databáze mě nadchly :).

TAK OD ZAČÁTKU

Téma mého projektu je pomoci jedné jazykové škole, kde částečně působím a mám ráda lidi, kteří tam pracují – za to, že to dělají poctivě s ohledem na lidi, nikoli na peníze na prvním místě. Z čehož myslím jasně vyplývá, že potřebují pomoci velmi. A potřebují uklidit současná data, vytvořit jednotnou strukturu pro shromažďování dat budoucích a vytáhnout z těch dat nějaké smysluplné údaje, které jim mohou pomoci dále směřovat své podnikatelské výpady prosperitě vstříc.

Bod číslo jedna: Dělají dobře svoji práci? Ano.
A ten zbytek? Tak to je peklo.
Tak to je ten začátek.

K DIGITÁLNÍ AKADEMII i k danému úkolu jsem se snažila přistupovat komplexně. Tedy nezaměřit se jen na jednu oblast a v ní se specializovat. Vyzkoušet využít vše, co mi akademie nabízí. Vzhledem k mým vstupním předpokladům = nepopsaný list – velmi nevýhodná volba. Teď, když to píšu, mám dojem – a myslím, že správný –, že se všemi těmi vědomostmi mi bylo umožněno stát na prahu „datové analýzy“ a nakukovat nesměle škvírkou ve dveřích do pokojíků, kde se válí Python, podřimuje MS-SQL, na televizi se dívá PowerBI a Datové modely si uklízí ve skříních.

Tak do práce…

1. Původní data
2. KPI
3. Excel
- selekce a natahování původních dat do tabulky
- čištění dat
4. Příkazový řádek
- import dat do MS-SQL
5. DBDesigner
- datový model pro datový sklad
6. MS-SQL
- napravování chyb, které jsem nevyčistila v Excelu
- tvorba tabulek, číselníků a propojovacích tabulek podle DB modelu
- insertování dat pomocí joinů do nových tabulek
7. PowerBI
- import a zpracování dat
- vizualizace a interpretace dat
8. Zářná budoucnost

ÚKOL Č.1: Původní data

Škola mi poskytla registry svých studentů poměrně rychle a bez komplikací. Komplikací byla samotná data – chápu správně, že je to klasická situace v životě a době Datového Analytika?
Snaha postahovat vše mi zabrala spoustu času a začalo to vypadat nekonečně. Časové omezení projektu a moudrá slova mentorky mě donutilo přehodnotit svůj záměr zanalyzovat všechny data a všechny ukazatele.
Těším se, že po akademii budu mít dost času je opravdu všechny zpracovat. Netušila jsem, jak velké sousto to je.

ÚKOL Č.2: Klíčové ukazatele výkonnosti (KPI)

KPI jsou taková data v rámci dané firmy či úkolu, jejichž hodnoty vypovídají o úspěchu či neúspěchu podnikání nebo stanoveného cíle projektu.

Moje zaměření:
1. Sledovala jsem jen kurzy angličtiny, protože jsou hlavní komoditou.
2. Zaměřila jsem se pouze na kurzy pro dospělé.

Odpovídající cíle analýzy:
Počet studentů a obsazenost kurzů:
- celkové sledování množství studentů
- obsazenost jednotlivých jazykových úrovní čase
- proměna obsazovanosti různých úrovní kurzů
- studenti, kteří v kurzech postupovali do dalších úrovní – zajímá mě, jak studenti využívají navazujících kurzů; kromě vypovídající hodnoty o úrovni školy či spokojenosti studentů lze využít pro marketingové účely ve smyslu nalezení pravých příběhů k reprezentaci školy

Dané KPI odpovídají vzorku vybraných dat. S daty školy budu dále pracovat a vyhodnocovat je ve větší šíři a s dalším zaměřením. Např. s ohledem na ceny kurzů, z čehož by mělo vyplynout, jaký by měl být ideální poměr obsazenosti různých typů kurzů pro co největší zisk a kam tedy nejvíce zaměřit marketingové síly.

ÚKOL Č.3 – Excel

1. Selekce a natahování původních dat do tabulky znamená trpělivě otvírat tabulku za tabulkou a kopírovat a kopírovat a kopírovat...vyčistit si zuby a jít spát...a kopírovat a kopírovat.

2. Čištění dat znamená udělat z toho neforemného zápisu úhlednou sjednocenou tabulku. To mi trvalo dlooooouho. Hlavně proto, že: chyba, chyba, chyba, jak to, co s tím, a …..pane bože, smazala jsem si tam ty sloupce (tady jsem teda už skoro brečela).

Malovat obraz...teda pokud nejste ti nedělní malíři  a nic proti nim  není žádná legrace. Někdy to jde hladce. Vezmete štětec, začnete malovat a jdete přímo. Slyšíte obraz, co říká a držíte se toho. Ale většinou se obraz rodí a má své bolesti a úskalí. Pořád něco chce, pořád něco přemalováváš. Protože s každou pochopenou věcí a změnou otevřeš dveře k pochopení další souvislosti a tudíž k další změně a tak dál...až nakonec...sedíš, koukáš a vidíš...obraz je v klidu, je to hotový.



A juchů, tabulka je tu. Kdo by řekl, že to je jen úvod vší té práce a odevzdat projekt mám za….to nechtějte vědět!

Co jsem si myslela, že bude potřeba a Mr. Pavel Lasák mě na to připravil:
- rozdělování textu v jednom sloupci do dvou, vytáhnutí části textu – ZLEVA, ZPRAVA, DÉLKA, ČÁST
- NAJÍT a NAHRADIT mezery v textu apod.
- ten křížek v buňce vpravo dole, co vám zkopíruje danou část až na konec sloupečku….božíííí
- různé datové typy v buňkách jednoho sloupce

Co jsem si nemyslela, že bude problém a pak byl:
- prázdné řádky – je lepší zjistit proč a jak a případně vhodně doplnit, hodnota NULL v SQL dělá pekelné věci
- mezery mezi číslicemi v telefonních číslech a psč – jakmile si to v SQL nastavíte jako INT, tak vám to dá sežrat
- datové typy

HLAVNÍ POZNATEK: Excel není žádný blbý tabulkovač a Pavel Lasák je velký excelový guru.


ÚKOL Č.4: Naimportovat upravená data z Excelu do MS-SQL přes příkazový řádek znamená...

...úmornou x-hodinovou snahu, přepisování, nové ukládání, vyřešení a stále nic...a na sklonku dne objevit špatně umístěnou dvojtečku.


Nikdy bych nevěřila, že toto budu vnímat jako zázrak:
(Pak, že Ježíšek neexistuje...)








HLAVNÍ POZNATEK: Objev existence příkazového řádku. Rozumím logice toho zápisu.

ÚKOL Č.5: Modelování databáze

Rozhodla jsem se navrhnout celkovou databázi ukládání dat, což nebylo v původním záměru. Ale prostě to nešlo se na to dívat.
Děkuji mentorce za systém vedení „takhle ne, tohle je blbě, jinak“, což mi umožnilo proces pilovat tak dlouho, až jsem to všechno pochopila.
Na internetu jsem posléze našla zdarma ke stažení program pro navrhování databází DBDesigner a tvořila jsem...databázové umění...postmoderna to sežere snadněji než příkazový řádek.







HLAVNÍ POZNATEK:
Každá tabulka obsahuje data, která se neobjevují v žádné jiné. Dvě tabulky jsou vždy spojeny tak, že jedna poskytuje primární klíč a druhá tabulka vytváří na tento klíč referenci, tedy sloupec (nebo sloupce), který obsahuje hodnoty primárního klíče první tabulky. Číselníky vám zjednoduší život.
HROZNĚ MĚ TO BAVILO!!!!

ÚKOL Č.6: Naučit se dotazovací jazyk SQL a pracovat v relačním databázovém a analytickém systému MS SQL

…...další čištění. Tvorba tabulek a číselníků, které až propojím, vytvoří harmonii pořádku, logiky, souvztažnosti a snadné použitelnosti.
SQL jsem věnovala v rámci možností docela dost času, ale jen praxe opravdu naučí. A protože jsem strávila spoustu času nad googlováním chybných hlášek, troufám si tvrdit, že jsem se i něco naučila. Hlavním úskalím byly věci, které jsem si neuvědomila v rámci čištění v Excelu – a je mi to velkým ponaučením do budoucna. Na druhou stranu mi to přineslo právě velkou možnost učit se SQL :).
Pomocí skriptů jsem vytvářela (ano, je to tvořivá práce, kdo by to byl řekl) fyzické tabulky, propojovací tabulky a číselníky.

Takhle jsem k tabulce s importovanými daty přidala další sloupeček a pak do něho přidávala názvy úrovní. Krása, ne?

ALTER TABLE import_standardy
ADD uroven NVARCHAR(50);

UPDATE import_standardy
SET uroven='Beginners' WHERE kod_kurzu LIKE 'A1%';

A na závěr, až byly všechny tabulky vytvořeny, chyby vymazány a nully zkroceny, mi moje mentorka rozkryla velkou magii joinování. Jako každé kouzlo – není to tak složité, jak to vypadá – když to pochopíte. Na druhou stranu, není to tak jednoduché, jako rychlost zápisu někoho, kdo to už nějaký pátek dělá….joinuju pomalu prostě.
Chcete to ukázat?
1. tabulka pro naimporování dat – vidíte ty datový typy? No, jinak to nechtěla nachroustat, potvora.
To blaho, že mám ještě prostor pro zdokonalování :)

CREATE TABLE import_standardy(
skol_rok nvarchar(250),
kod_kurzu nvarchar(250),
prihlaska nvarchar(250),
jmeno nvarchar(250),
prijmeni nvarchar(250),
dat_prihlaseni nvarchar(250),
ulice nvarchar(250),
psc nvarchar(250),
mesto nvarchar(250),
telefon nvarchar(250),
email nvarchar(250)
);

2. další tabulka, kde už jsou nainsertovaná data

CREATE TABLE t_student (
id_student int primary key IDENTITY(1,1) NOT NULL,
surname nvarchar(50),
first_name nvarchar(50),
study_work binary(20),
degree_educ nvarchar(50),
);

A můj vlastní JOIN!!!!!, díky kterému jsem nainsertovala data do tabulky o telefonních číslech.

INSERT INTO t_phone(id_person,phone_num)
SELECT s.id_student, i.telefon
FROM import_standardy i JOIN t_student s ON s.surname = i.prijmeni AND s.first_name = i.jmeno

Do tabulky jsem potřebovala dostat id_person, který odpovídá id_student z tabulky t_student a telefonní čísla, která jsou v tabulce import_standardy. Abych oboje data mohla do nové tabulky nainsertovat v odpovídajících souvislostech, musela jsem uvedené tabulky k sobě připojit pomocí příkazu JOIN a shodných sloupců, které definují místo spojení = svými daty se překrývají. Tak se data objevila vedle sebe v odpovídajících řádcích a mohla být ve správných souvislostech nainsertována do tabulky nové.

Nakonec jsem si všechny tabulky s radostí prohlídla:

SELECT*FROM cis_address
SELECT*FROM cis_course_day
SELECT*FROM cis_course_level
SELECT*FROM cis_language
SELECT*FROM cis_person
SELECT*FROM cis_semester
SELECT*FROM cis_test
SELECT*FROM language_teacher
SELECT*FROM student_course
SELECT*FROM t_address
SELECT*FROM t_application
SELECT*FROM t_course
SELECT*FROM t_email
SELECT*FROM t_phone
SELECT*FROM t_price_course
SELECT*FROM t_room
SELECT*FROM t_student
SELECT*FROM t_teacher
SELECT*FROM t_test
SELECT*FROM t_schedule


HLAVNÍ POZNATEK: Kde je na klávesnici ' _ ' a ' * '. TRUNCATE není DELETE. NULL je noční můra, která zkomplikuje co může i co nemůže a někdy ani google nic nezmůže.

ÚKOL Č.7: Vizuallizace v  PowerBI

Na konci práce se musím vrátit na začátek – k otázkám, které jsem si položila v úvodu a kvůli jejichž odpovědím jsem to celé dělala. Tedy, která data mě zajímají:


Počet studentů a obsazenost kurzů:
- celkové sledování množství studentů
- obsazenost jednotlivých jazykových úrovní čase
- proměna obsazovanosti různých úrovní kurzů
- studenti, kteří v kurzech postupovali do dalších úrovní

A takhle se to vykreslilo v PowerBI:

- 2 způsoby znázornění počtu studentů v různých školních letech:



- poměr obsazenosti jednotlivých kurzů v čase v číslech a v %:







- počty studentů v jednotlivých úrovních kurzů v čase:











- obsazenost jedné vybrané úrovně kurzu v čase:



- podíl studentů v % v ve jednotlivých kurzech:



- tabulky a graf počtu studentů a počtu absolvovaných úrovní kurzů:




INTERPRETACE:
V rámci časového omezení jsem již nedodělala všechny tabulky, které bych chtěla. Samotné výsledky "úspěšnosti" jednotlivých kurzů, o které stála sama škola, myslím nijak sami o sobě obstojně nevypovídají o něčem zásadním. Celkové snížení kurzů musela zákonitě snížit samotná úroveň a dostupnost kurzů v rámci státního vzdělávání a také vznik dalších jazykových škol a zřejmě i dotační politika EU, na kterou některé školy reagovaly snížením cen, což není případ této školy. Lepší vypovídající hodnotu bude mít srovnání obsazenosti dalších typů kurzů jako je pomaturitní studium, dětské kurzy, konverzace (a s ohledem na cenu) – tedy kurzy, které by měly vyvážit úbytek standartních kurzů, především těch nižších úrovní, které přestávají být potřebné. Nicméně, protože vždy se dá něco dělat a zlepšovat, bude zajímavé vysledovat – to udělám hned po skončení tohoto kurzu – studenty, kteří absolvují navazující kurzy. V případě dlouholetého studia jsou tito studenti zajímaví pro svůj důvod a příběh, který by mohl podpořit příběh školy  a způsob, jak motivovat ty studenty, kteří studují například druhým rokem. Podchycení stávajících studentů mi přijde jako nejslibnější marketingový plán pro podporu těchto typů kurzů.

ÚKOL Č.8: Pokračování v projektu aneb co mě ještě čeká

Hodlám projekt dotáhnout do finální podoby. Což znamená, že:

1. musím úplně od začátku stáhnout všechna data, neboť jsem při vizualizaci dat zjistila, že mi z analýzy vypadl jeden školní rok. Takže dalším poučením je, že datový analytik musí být k datům a jejich zpracování velmi pozorný. Vše důkladně pročistím v Exelu, naimportuji do MS-SQL a nainsertuji do přpravené databáze. Analýza jednotlivých typů kurzů a jejich porovnání budou mít tu vypovídající hodnotu, které chci dosáhnout. Takové hodnoty, které budou dostatečnou provokací k následujícím aktivitám ve prospěch školy.

2. vytvořím tabulku, do které budou ukládat nová data.

3. napíšu skript v Pythonu, který bude každoročně automaticky aktualizovat obsah databáze.

4. Přizpůsobím databázi GDPR, což jsem už částečně reflektovala teď.

A....rozhodně se chci profesionalizovat v nástroji PowerBI, který v sobě skrývá skvělé schopnosti od vytvoření samotné databáze k jejímu vizuálnímu znázornění pěkně na jednom písečku.


NA ZÁVĚR – CO JSEM SE NAUČILA:

...ŽE existují 2 základní věci pro úspěšnou datovou analýzu:

1. SPRÁVNĚ USPOŘÁDANÁ DATA – to chce čas

2. SPRÁVNĚ KLADENÉ OTÁZKY – to chce hlavu a intuici

První vyplývá z druhého. Umíte-li si klást dobré otázky, tušíte jaká data je potřeba sbírat a jak je uspořádat. A když hledáte odpovědi na správné otázky, není nic nenahraditelnějšího, než dobře uspořádaná data....A pak jsou tu různé nástroje, které pomáhají.

NA ÚPLNÝ ZÁVĚR:
Vzhledem k tomu, že minimálně 70% (odhad, ne analýza) všech datových analýz vzniká na objednávku, bych chtěla vzkřísit pojem ETIKA.

PODĚKOVÁNÍ:
NEJVÍC Mentorce LENCE KMEŤOVÉ za sdílení skvělých znalostí a schopnost je předat a za ochotu a trpělivost...a ochotu pomoci i posléze.
Holkám z CZECHITAS za nadšení, energii a otevřenost, s kterou zvládají celou organizaci.
Všem LEKTORŮM za ochotu sdílet svoje know-how, za jejich příběhy a otevření mých očí ve smyslu vlastních schopností.
Speciální poděkování PAVLU LASÁKOVI za reakci na můj pláč, že jsem si to všechno smazala a pak zas dělala všechno znova, ten ztracený čas...."To je krása, to ses naučila nejvíc." a HONZOVI MAYEROVI za jeho jiný pohled na kvalitu a kvalifikaci zaměstnace...myslím, že má něco společného s Arabelou, protože pro mě to bylo jako otočení kouzelným prstenem v záplavě sofistikovaných názvů různých IT pracovních pozic.
A ještě neohroženým spolubojovnicím HANCE CHAJDĚ - jak ji život naložil, tak je veselá - a LENIČCE KNAP - jak je křehká, tak je hustá. A všem ostatním soudružkám - i když jsem je nestihla poznat blíž - není náhodou, že jsme se potkaly ve stejnou dobu na stejném místě.
A VŠEM, KTEŘÍ DOČETLI AŽ SEM.

VÁNOČNÍ PŘÁNÍ:
Všem holkám z kurzu, ať se jim daří s daty i bez. Hance zdravý záda.

Zdroje pro úplné laiky:


Komentáře

  1. Baccarat for beginners - Learn How to play baccarat at the best
    Beginners learn how to play baccarat 바카라 사이트 in the UK. Discover the 바카라 rules of Baccarat and how to win money, 제왕카지노 tips, strategy and more.

    OdpovědětVymazat

Okomentovat

Populární příspěvky z tohoto blogu

Petra Havlínová: Automatické zpracování podkladů pro vyhodnocení vybraných KPI

Michaela Raková: Internetové obchody pohledem ČOI

Zuzana Uhříková: Ověření hypotézy, zda má Airbnb vliv na klasické pronájmy v Praze