Sme tím profesionálov

Naspäť na novinky

ETL bez serverov = ETL bez starostí

Server-less, alebo po slovensky „bez serverov“, je prístup k výkonu výpočtových operácií a prevádzky riešení bez nutnosti spravovať servery, a to ani virtuálne. Tí, ktorí spravujú desiatky až stovky serverov, vedia, že je to poriadna dávka povinností, ktorých sa zbaviť je nielen príjemné ale aj efektívne. Nakoľko najväčšou nákladovou položkou bývajú náklady na administráciu.

Aktuálne je viacero možností ako realizovať ETL proces bez serverov. Krátko si ich popíšeme na službách v cloude AWS.

AWS Glue

Jednou zo základných služieb pre ETL proces je služba AWS Glue. Tú aj AWS prezentuje ako ETL bez infraštruktúry. V princípe sa jedná o exekúciu Spark-ových úloh realizovaných na škálovanej infraštruktúre AWS. Jednotlivé úlohy možno písať v Python alebo Scala a distribuovaným spôsobom sú exekuované nad dátami umiestnenými v objektovom úložisku S3 (ďalšia služba bez serverov). AWS Glue umožňuje prehliadať dáta, transformovať ich a robiť dostupnými pre prehliadanie a dopytovanie prostredníctvom SQL. Zjednodušene možno povedať, že dáta (napríklad v CSV či Parquet) sú spracované do štruktrúry a následne k nim možno pristupovať ako k tabuľke. Nezávisle na tom aká je veľká a z koľkých súborov sa skladá. Ďalšími zdrojmi, môže byť relačná databáza (AWS ich poskytuje niekoľko, napríklad aj PostgreSQL, či Oracle), Mongo DB alebo iná databáza prístupná cez JDBC konektor.

Pre štruktúrovanie semi-štruktúrovaných dát poskytuje podporu AWS Glue Catalogue, čo je metadata katalóg. Je postavený na Hive Meta katalógu (podporuje Hive DDL) a aj API má zhodné s Apache Hive Meta katalógom. V ňom sú uložené informácie o tabuľkách, stĺpcoch, partíciách a pod. Okrem katalógu dát je práca s dátami podporená aj ďalšou službou – registrom schém.

Spracovanie zdrojových dát je úlohou crowl-erov, čo sú joby – úlohy exekuované v určený čas alebo na základe udalosti. Jednotlivé úlohy možno samozrejme aj plánovať, či radiť do nadväzujúcich krokov a tvoriť workflow.

AWS Lambda

Zaujímavou možnosťou pre využitie v procese ETL je použitie služby AWS Lambda. Jedná sa o službu, kde sú jednotlivé časti spracovania premietnuté do kódu a priamo ten je vykonávaný službou AWS Lambda. Ide o „code-execution engine“, kde napísaný kód je spustený na základe udalosti. Či už z inej AWS služby (napr. pridanie súboru do S3) alebo z plánovača alebo služby na riadenie tokov dátového spracovania.
Kusy kódu, sú vo forme funkčných celkov, ktoré môžu byť zbalené aj do containerov. Podporované jazyky sú Node.js, Python, Ruby, Go, Java a C#. Samozrejme, kód v containery môže byť akýkoľvek. Veľkosť containerov je limitovaná na 10 GB a alokovaná pamäť pre každú funkciu môže byť až 10 GB. Funkcií pre jedno konto môže bežať naraz až tisíc. Životnosť behu kódu (funkcie) je obmedzená na 15 minút. Pre náročnejšie úlohy sa predpokladá využitie paralelného behu.

AWS Batch

Komu by nepostačoval pre úlohy 15 minútový časový rámec pre jednu úlohu, môže využiť službu AWS Batch. Ide znova o službu, kde sa nepredpokladá starostlivosť o servery. V tomto prípade to však nie je úplne bez serverov. AWS Batch je služba kde môže používateľ spúšťať náročné dávkové úlohy na elastickom klastri serverov alebo containerov. Pre beh serverov sa využívajú štandardné obrazy inštancií EC2 a pre containery je to služba ECS Fargate (de facto platforma pre beh containerov as a service). Odpadá teda starostlivosť o servery, ich administrácia, udržiavanie a pod. Dávková úloha funguje tak, že AWS Batch iniciuje „vznik“ clustra serverov, na nich beží úloha, pokojne aj hodiny či dni. Po dobehnutí úlohy sú servery alebo containery „vypnuté“ a „zahodené“.

Služba je vhodná na dávkové spracovanie dát, obmedzenie prakticky neexistuje, pretože limitom je len či je schopná bežať na operačných systémoch podporovaných AWS, resp. v containeroch podporovaných AWS. Služba je „zdarma“, platí sa za spotrebované sekundy použitého výkonu.

Amazon Athena

V rámci procesu ETL je spravidla nutné k dátam pristupovať aj pre dotazovanie, či prehľadávanie. Na tieto úlohy je určená služba Amazon Athena. Ide o interaktívny dotazovací „engine“, kde používateľ pristupuje k dátam prostredníctvom JDBC konektora a cez SQL dotazy prehliada dáta, prípadne ich transformuje, agreguje, a pod.
Dáta uložené vo forme súborov sú uložené v úložisku S3. Amazon Athena je integrovaný s AWS Glue Catalogue a teda pre používateľa vystupujú ako tabuľky, či databázy. Nezávisle na tom aké veľké sú dáta, a v koľkých súboroch sú reálne uložené. Samozrejme, dotazy možno aj uložiť a volať prostredníctvom plánovača (služba AWS Step Functions) alebo na základe udalosti, či volania cez API.

Ide o službu bez serverov a o výkonnosť a škálovanie sa stará služba samotná. Spoplatnená je vo forme poplatku za objem prečítaných dát (5 dolárov za 1 TB dát).

Táto služba je taktiež primárnou službou pre prístup nástrojmi pre business inteligence, či reporting. Protokoly ODBC a JDBC umožňujú pripojenie napríklad z Qlik, Tableau, DBeaver či iných obdobných nástrojov pre manipuláciu s dátami prostredníctvom SQL jazyka.

Záver

Záverom možno konštatovať, že v AWS cloude je možné vybudovať kompletné spracovanie dát bez potreby jediného administrátora serverov, či infraštruktúry. Ďalšou výhodou je, že spôsob spoplatnenia je striktne „pay per use“, teda platí sa len za spotrebovaný výkon a nie je potrebné nič alokovať. Súvisiace služby ako metadata kalatóg, plánovač spracovania, dizajnéry tokov a pod. sú zdarma.

Autor

Miloš Molnár
Grow2FIT BigData Consultant

Miloš má viac ako 10 ročné skúsenosti s návrhom a implementáciou BigData riešení v cloud-ovom aj on-premise prostredí. Špecializuje sa na distribuované systémy, spracovanie dát a dátovú vedu využitím technológií ako Hadoop a cloudových služieb (AWS, Azure). Spolu s tímom dodal Miloš množstvo aplikácií pre dávkové aj streaming-ové spracovanie dát.
Má skúsenosti s dodávkou riešení pre korporátnych klientov ale aj pre start-upy. Pri návrhu dátových architektúr vyznáva princípy otvorených riešení, nákladovej efektívnosti a udržateľnosti v špecifickom prostredí klientov. Samozrejme, v zhode so stratégiou klienta a biznis architektúrou.

Celý konzultačný tím Grow2FIT: O nás

Súvisiace služby

Sme tím profesionálov

Naspäť na novinky

Prichádza čas QR kódov a okamžitých (instantných) platieb

Píše sa rok 2018 a v grémiách EPC (European Payment Council) sa vytvára nový typ produktu - Okamžité platby v EUR. Je to veľká zmena v pohľade na rýchlosť presunu kapitálu v rámci Európy.

Čo to prinesie?

V prvom rade veľké možnosti pre podnikateľov a spotrebiteľov (občanov) zaplatiť za služby pripadne obdŕžať úhradu za dodaný tovar v reálnom čase.
V druhom rade dáva možnosť klientom zaplatiť na internete za služby aj bez použitia platobnej karty (alternatívny spôsob platby mimo kartovej schémy bola dlhodobá požiadavka podnikateľov z dôvodu vysokého zaťaženia poplatkami za prijímanie platieb kartou).

Čo  sa zmenilo?

Banky v EU a tiež banky v SR sa pripojili do systému kde je možne do 10 sekúnd vykonať platbu (aj s overením či účet príjemcu je správny a platný).

Banky použili systémy ECB (European Central Bank), ktoré im umožnili rýchlo presúvať financie v rámci danej SEPA Instantnej schémy.

Na to aby sa dali instantne služby použiť čo najefektívnejšie na úhradu za služby je potrebné mať efektívny spôsob prijímania platieb a to pomocou QR kódu prípadne univerzálnej platobnej linky. QR kód / platobná linka obsahuje všetky dôležité náležitosti aby sa platba dala vykonať. Číslo účtu príjemcu, sumu a tiež môže  obsahovať aj identifikátor platby (E2E referenciu alebo referenciu platby). QR kód / platobná linka umožní po nasnímaní platiteľom okamžité spracovanie v internet bankingu / mobile bankingu finančnej inštitúcie a za použitia okamžitej platby zaslať finančné prostriedky na účet príjemcu a ten môže po pripísaní okamžite finančnými prostriedkami disponovať (nie ako u kartovej schémy kde prostriedky prídu na účet až o niekoľko pracovných dni).

QR kódy a ich štruktúra môže mať rôzne definície a štandardy. Vo svete sa používa niekoľko (v prípade záujmu Vám radi poradíme).

Na čo môžeme Instantnú schému s QR kódmi využiť? Popíšeme na príklade živnostníka.

Živnostník po vykonaní dohodnutej práce môže na základe nim vystaveného QR kódu dostať okamžite zaplatené  za svoje služby. Nemusí čakať niekoľko dni na zaplatenie faktúry alebo mať platobný terminál (kde by po zaplatení prišla platba o niekoľko dní), prípadne žiadať platiteľa o platbu v hotovosti (následne je potrebné vložiť peniaze na účet). Jednoducho po vytvorení QR kódu / platobnej linky a jej načítaní platiteľom (cez mobilnú aplikáciu) dostane okamžite peniaze na svoj podnikateľsky účet a v prípade že v aplikácii má možnosti generovania faktúry / bločku ten zašle elektronicky platiteľovi, pripadne dané údaje zaeviduje okamžite vo svojom účtovníctve.

Dané riešenie je možné využiť aj v iných oblastiach napríklad malé prevádzky pre ktoré by bola kartová schéma a terminál príliš nákladná, prípadne využiť možnosti QR kódov nie iba na vykonávanie platieb ale aj na ponúkanie rôznych zľavových schém.