06 Apr Uporaba Apache Spark za obdelavo velikih podatkov
V sodelovanju s poslovnimi parterji se srečujemo z vedno večjo količino podatkov, ki jo je potrebno obdelati. Obseg podatkov naj bi se v prihodnje še bistveno povečal. Predvidevamo, da bo število meritev znotraj projekta ALYA (v sodelovanju s podjetjem Gen-i d.o.o.), ki bodo pridobljene v enem dnevu, okoli 2,5 milijarde (30.000 merilnih mest, 20 časovnih vrst, 3 meritve na minuto, 60 minut na uro, 24 ur na dan) .
Orodja, ki smo jih do sedaj uporabljali pri zajemu, obdelavi in analizi podatkov, na primer SQL, niso več kos količini podatkov, s katero se soočamo. Zato potrebujemo orodje, ki je zmogljivejše in omogoča obdelavo velikih podatkov na učinkovit način in v katerem se procesi izvajajo dovolj hitro.
V podjetju smo se odločili za uporabo Apache Spark, ki omogoča obdelavo, zajem in analizo velikih podatkov.
Prednosti odprtokodnega orodja Apache Spark so predvsem izjemna hitrost pri obdelavi velikih podatkov in enostavnost uporabe, saj omogoča interaktivno programiranje v jezikih Java, Scala, Python, R, SQL in .NET. Operacije se lahko izvajajo vzporedno, kar pripomore k hitrejši obdelavi podatkov. Knjižnice, ki jih Spark podpira, omogočajo poizvedbe, zajem, kompleksno analizo in grafični prikaz podatkov, poleg tega pa tudi strojno učenje in obdelavo podatkov v realnem času.
Trenutno ga uporabljamo predvsem v ETL (angl. extract, transform, load) procesih, s katerimi zajamemo del podatkov, ki so shranjeni v obliki parquet datotek. Te omogočajo hitre poizvedbe v velikih podatkovnih okvirjih. Zajete podatke nato transformiramo s pomočjo vgrajenih funkcij in preoblikovane podatke shranimo nazaj v bazo. Zanimajo nas na primer dnevna vsota določene časovne vrste (energija), dnevno povprečje časovne vrste (moč), maksimum dveh časovnih vrst po urah (pravilno aktivirana energija) in druge vrednosti podatkov, predvsem statistične. Podatki so shranjeni v oblačni platformi za shranjevanje podatkov Microsoft Azure DataLake, iz katerih jih s Sparkom z ETL procesom preobrazimo in shranimo nazaj na DataLake.
Obdelava velikih podatkov prinaša veliko izzivov, ki jih je potrebno rešiti in napredna orodja kot je Apache Spark so nam pri tem v veliko pomoč.