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