Artem Aliev som skal lære mig at bruge Spark på torsdag, holder en præsentation om hvordan man kan overkomme NoSQLs databasers problemer med at de ikke har noget stærkt query sprog. Fra min egen erfaring kan jeg snakke om MongoDb, som er god at gemme data i, men knap så god når man vil søge og finde sine data igen, med mindre man har et id.
Han vil vise at ved at introducere Spark kan man løse mange af de opgaver som ellers har vist sig at være et problem.
Spark kører som en in-memory engine oven på NoSQL databasen, og tilføjer derved den funktionalitet som ellers har været savnet i disse databaser.
Som annonceret prøvede han også at overtale os til at Scala er et godt sprog, som ser godt og simpelt ud, men jeg ved ikke om jeg blev overtalt til at bruge det istedet for Python.
Med Spark viser han ikke kun hvordan man kan sammenkoble (er der et bedre dansk ord for join ?), men også hvordan man kan løse machine learning og graf problemer ved brug af Sparks MLlib og Graph. Graf biblioteket er godt nok stadig ikke er færdigt – Artem siger at det er i alpha, så man skal nok vente lidt med at bruge det til alt for meget.
Spark Streaming er, ifølge Artem, den mest spændende del af Spark, som bruges til at processer data som kommer så hurtigt at man ikke kan nå og gemme dem også analysere dem senere. Istedet hælder man dem igennem et rør der løber gennem Spark, der kan analysere data før det flyder ud i intetheden eller bare gemt i en log (hvilket mange vil sige er det samme), de analyseret data kan så gemmes i en database.
Spark tilbyder også distribuerede Machine learning algoritmer, hvor det klassiske eksempel hvor man klassificere Iris blomsten ved hjælp af Naive Bayes, hvilket er et typisk hello world eksempel af Machine Learning frameworks, og det så også nemt ud.
Det virker på mig som om Spark løser en masse problemer, men selvom det er distribuerede er jeg ikke blevet overbevist om at der ikke stadig er mange problemer, som skal løses før man er klar til at lave analytics oven på sine NoSQL data.