Preskočiť na obsah

Ľahký úvod do Databricks

V článku o tom, aké veľké sú veľké dáta sme si povedali, že pod pojmom veľké dáta sa častokrát rozumejú technológie, ktoré umožňujú spracovávať a analyzovať veľké množstvo dát. Jedným z takýchto nástrojov je Databricks.

Čo teda je Databricks?

Na to aby sme mohli odpovedať na túto otázku, musíme sa vrátiť trochu do histórie. Jednou z vlastností veľkých dát je ich objem a s tým je spojený problém ako a kam dáta efektívne ukladať. Aj keď cena za gigabajt rok od roka klesá, stále sú disky s veľkou kapacitou pomerne drahé.

V roku 2002 vznikol projekt Nutch, ktorého hlavný cieľom bolo vytvoriť nástroj na vyhľadávanie na webe. Jeho autori odhadli, že počiatočné náklady na hardvér, ktorý by umožnil vytvorenie indexu o veľkosti 1 miliardy stránok, by boli viac ako pol milióna dolárov a mesačné náklady na prevádzku by boli okolo 30 000 dolárov.

Vývojári z Googlu pristúpili k tomuto problému kreatívne a prišli s nápadom vytvoriť distribuovaný súborový systém, ktorý by umožňoval uložiť veľké množstvo dát na veľké množstvo malých, lacných, cenovo dostupných a kľudne aj nespoľahlivých diskov. A tak v roku 2003 Google zverejnil publikáciu The Google File System. O rok neskôr prišli s myšlienkou urobiť presne to isté pre výpočet – rozdeliť záťaž medzi veľké množstvo malých lacných počítačov, z ktorých každý spracováva dáta uložené na distribuovanom súborom systéme. Publikácia bola vydaná pod názvom MapReduce: Simplified Data Processing on Large Clusters. Kombinácia týchto dvoch vecí umožňuje vytvoriť neuveriteľné veľký systém bez špecializovaného hardvéru a tak v roku 2006 vznikol projekt známy ako Apache Hadoop.

Aj keď Apache Hadoop škáluje veľmi dobre a môže narásť do obrovských rozmerov, nie je to vždy najrýchlejšie riešenie, hlavne kvôli tomu, že Hadoop ukladá výsledky operácii späť na disk. A toto je miesto, kde vstupuje do hry Matei Zaharia. Spolu s kolegami počas svojho pôsobenia na univerzite v Barkley zobral myšlienku MapReduce a paralelného spracovania, ale s tým rozdielom, že nahradili ukladanie medzivýsledky operácii na disk za ukladanie do pamäti a tým zamedzili zbytočnému čítaniu a zápisu na disk. Výsledkom bolo výrazne zvýšenie rýchlosti výpočtu. Matei spolu s kolegami projekt darovali Apache Software Foundation a tak vznikol v roku 2013 projekt Apache Spark.

Čo by ste urobili, keby ste mali fantastický open-source projekt? Matei so svojimi kolegami založil firmu, ktorá umožňuje čo najlepšiu a najjednoduchšiu prácu s Apache Spark. A to je Databricks.

Databricks je teda vrstva nad Apache Spark-om, vďaka čomu je práca s Apache Spark-om veľmi jednoduchá.

Apache Spark

Zastavme sa na chvíľku pri Apache Spark, aby sme porozumeli, nad čím je vlastne Databricks postavený. Apache Spark je celý mechanizmus, ktorý umožňuje distribuovaný výpočet a distribúciu dát na niekoľko rôznych serverov. Spark pracuje s DataFrame-ami a DataSetmi. Dataset je silne typovaná abstrakcia nad distribuovanou kolekciou dát. V podstate poskytuje rozhranie na manipuláciu s dátami, spájanie dát, zgrupovanie a transformácie. DataFrame je DataSet organizovaný do pomenovaných stĺpcov. Konceptuálne je podobný tabuľke v relačných databázach. DataFrame API je dostupné v Jave, Scale, R a Pythone.

Nad DataFrame API je postavená celá rada ďalší API ako je najpríklad MLib – knižnica pre strojové učenie, GraphX alebo GraphFrames pre prácu s grafmi alebo Streaming API, ktoré umožňuje spracovávať konštantne prichádzajúce dáta.

Čo potom robí Databricks?

Čo potom robí Databricks, keď sa zdá, že všetko robí Apache Spark? Databricks je vrstava nad Sparkom a poskytuje nám niekoľko užitočných vecí. Umožňuje nám veľmi rýchlo a jednoducho vyrobiť veľké množstvo rôznych clusterov. Napríklad cluster s veľkým počtom počítačov pre náročné úlohy alebo malý a lacný cluster pre ad-hoc úlohy. Poskytuje IDE resp. Workspace pre ukladanie a editovanie kódu. K dispozícii je aj správa prihlasovacích údajov a tiež možnosť sledovať metriky. Vďaka Databricks je práca s Apache Spark oveľa prístupnejšia a jednoduchšia pre priemerného vývojára.

V súčasnosti je možné používať Databricks na Azure, AWS a GCP.

Zopár odkazov pre zvedavých