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
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čty studentů v jednotlivých úrovních kurzů 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 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 %:A takhle se to vykreslilo v PowerBI:
- 2 způsoby znázornění počtu studentů v různých školních letech:
- 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.
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:
Baccarat for beginners - Learn How to play baccarat at the best
OdpovědětVymazatBeginners learn how to play baccarat 바카라 사이트 in the UK. Discover the 바카라 rules of Baccarat and how to win money, 제왕카지노 tips, strategy and more.