Poměřit SQL svaly. Česká spořitelna uspořádala čtyřhodinovou SQL Challenge
Česká spořitelna připravuje u svého datového skladu postupný přechod z technologie Oracle na Snowflake. Aby svým zaměstnancům ukázala mimo jiné i to, jak se platformy liší, uspořádala speciální soutěž SQL Challenge. Její účastníci mohli pomocí libovolné ze dvou zmíněných technologií řešit zapeklité úlohy a předvést své dovednosti.
První ročník SQL Challenge se v České spořitelně setkal s překvapivým úspěchem. Soutěž totiž nakonec přilákala celkem 52 účastníků, kteří měli čtyři hodiny na to vyřešit až pět úloh týkajících se práce s SQL databází. „Nápad se zrodil proto, že připravujeme migraci datového skladu z Oracle na Snowflake a chtěli jsme lidem ukázat, že jsou si tyto technologie blízké,“ říká organizátor soutěže Jiří Mareš.
Účastníci soutěže při řešení mohli využívat literaturu nebo internetové vyhledávače, naopak zakázána byla spolupráce s AI nebo dalšími lidmi. Úlohy pak vždy vyhodnocoval automat, který po nahrání řešení účastníkům ihned sdělil, zda uspěli, nebo se musí v dané úloze ještě snažit.
Pět úloh mělo rozdílnou obtížnost, která dovednosti účastníků prověřila opravdu důkladně. A zároveň ukázala, že cesty k řešení mohou být skutečně pestré. „U první úlohy, která se zaměřovala na rozdělení dlouhého textu a jeho deduplikaci, se nám sešlo snad dvacet různých řešení,“ říká Mareš.
Jeden ze čtyř
S obtížností úloh se pak stupňovalo i jejich bodování. Za vyřešení první soutěžní úlohy dostali účastníci jeden bod, za druhou dva, za třetí tři a tak dále. Celkem tedy mohli získat patnáct bodů, přičemž o celkovém pořadí rozhodovaly nejprve body, v případě jejich rovnosti to, kdo ze soutěžících vyřešil těžší úlohu, a v případě rovnosti v tomto ohledu pak čas odevzdání posledního bodovaného úkolu. Rozhodovaly tedy nejen znalosti samotných účastníků, ale také rychlost řešení.
Platilo přitom, že kdo se „zasekl“ na některém z méně složitých úkolů, mohl to zkusit u složitějšího. Procento úspěšnosti vyřešení úloh ovšem v soutěži s rostoucí obtížností samozřejmě klesalo, takže zatímco první úlohu vyřešilo téměř 62 % účastníků, druhou asi 44 % z nich a třetí už jen čtvrtina. Čtvrtou úlohu pak vyřešili pouze tři soutěžící. A tu pátou, nejobtížnější, zvládl úspěšně jen jediný účastník soutěže.
Tímto řešitelem se stal Filip Čech, který jako jediný v SQL Challenge České spořitelny vyřešil všech pět úloh a získal tak plný počet patnácti bodů. „Hned od prvního úkolu byla soutěž náročná. Každý, kdo vyřešil alespoň některé ze zadání, už opravdu musel něco umět. Já sám jsem rád, že jsem to nakonec vůbec zvládl,“ hodnotí průběh soutěže její vítěz a chválí její zaměření: „Při této příležitosti se sešla pestrá skladba lidí napříč organizací, které ale vždy spojovala práce s daty.“ Podle něj si také zvláštní ocenění zaslouží fakt, že soutěž vznikla přímo uvnitř týmu Data Warehouse jako interní nápad řadových zaměstnanců.
Riddles 5, Input 1
| R5_PERSON_ID | R5_LOAN_ID | R5_LOAN_AMOUNT |
|---|---|---|
| 1 | 1 | 10000000 |
| 2 | 2 | 10000000 |
| 3 | 3 | 10000000 |
| 3 | 4 | 15000000 |
| 4 | 5 | 6000000 |
| 5 | 6 | 2000000 |
| 5 | 7 | 2000000 |
| 6 | 8 | 5000000 |
| 6 | 9 | 10000000 |
| 6 | 10 | 15000000 |
| 7 | 11 | 10000000 |
| 7 | 12 | 10000000 |
| 7 | 13 | 15000000 |
| 7 | 14 | 20000000 |
Riddles 5, Input 2
| R5_PERSON_ID | R5_COLLATERAL_ID | R5_COLLATERAL_AMOUNT |
|---|---|---|
| 1 | 1 | 20000000 |
| 2 | 2 | 5000000 |
| 2 | 3 | 5000000 |
| 3 | 4 | 28000000 |
| 4 | 5 | 1000000 |
| 4 | 6 | 1000000 |
| 4 | 7 | 3000000 |
| 5 | 8 | 3000000 |
| 6 | 9 | 1000000 |
| 6 | 10 | 5000000 |
| 6 | 11 | 5000000 |
| 6 | 12 | 5000000 |
| 6 | 13 | 20000000 |
| 7 | 14 | 5000000 |
| 7 | 15 | 20000000 |
| 7 | 16 | 30000000 |
| 7 | 17 | 100000000 |
Riddles 5, Output
| R5_PERSON_ID | R5_LOAN_ID | R5_COLLATERAL_ID | R5_COLLATERAL_AMOUNT |
|---|---|---|---|
| 1 | 1 | 1 | 20000000 |
| 2 | 2 | 2 | 5000000 |
| 2 | 2 | 3 | 5000000 |
| 3 | 4 | 4 | 18000000 |
| 3 | 3 | 4 | 10000000 |
| 6 | 8 | 9 | 1000000 |
| 6 | 9 | 10 | 1000000 |
| 6 | 8 | 10 | 4000000 |
| 6 | 9 | 11 | 5000000 |
| 6 | 10 | 12 | 1000000 |
| 6 | 9 | 12 | 4000000 |
| 6 | 10 | 13 | 20000000 |
| 7 | 11 | 14 | 5000000 |
| 7 | 13 | 15 | 5000000 |
| 7 | 12 | 15 | 10000000 |
| 7 | 11 | 15 | 5000000 |
| 7 | 14 | 16 | 20000000 |
| 7 | 13 | 16 | 10000000 |
| 7 | 14 | 17 | 100000000 |
Za Filipem Čechem pak v soutěži skončili na druhém místě Josef Ducheček a na třetím Martin Splítek. Oba společně s vítězem patřili do zmíněné trojice úspěšných řešitelů čtvrté úlohy, a měli tedy shodný počet deseti bodů. Proto v jejich případě rozhodoval čas odevzdání čtvrtého úkolu.
„Už přemýšlíme, jak na první SQL Challenge navážeme, protože ohlasy jsou opravdu dobré. Účastníci prokázali skvělé dovednosti a všem děkujeme za jejich neúnavnou práci,“ říká organizátor Jiří Mareš. Ten se také rozhodl uvolnit jedno ze zadání soutěže pro čtenáře IT Trendů. Každý tak může zhodnotit a částečně zkusit, jak náročná soutěž byla.