Big Data pradžiamokslis

Įvadas į Big Data

Atrodo, kad visi dabar kalba apie didžiuosius duomenis (Big Data), tačiau kas gi tai iš tikrųjų yra? Kaip jie keičia būdą, kuriuo tyrėjai įmonėse, ne pelno siekiančiose ir kitose organizacijose, vyriausybėse bei kitose institucijose tiria aplinką bei pasaulį? Iš kur šie duomenys atsiranda, kaip yra apdorojami ir kam naudojami tyrimų rezultatai? Ir kodėl atsakant į šiuos klausimus toks svarbus yra atviras kodas?

Šiame tekste sužinosite viską apie didžiuosius duomenis ir tai, kaip jie keičia mūsų pasaulį.

Kas yra Big Data?

Nėra vienos taisyklės, kokio dydžio turi būti duomenų bazė su joje saugomais duomenimis, kad jie būtųlaikomi didžiaisiais. Didžiuosius duomenis geriau apibūdina tai, kiek ir kokių naujausių technologijų bei įrankių reikia jiems apdoroti. Norint naudoti didžiuosius duomenis jums reikia programų, kurios sujungia įvairias mašinas, kad galėtų apdoroti visus duomenis per tam tikrą priimtiną laiko tarpą. Tam, kad skirtingos mašinos efektyviai dirbtų kartu, atskirtų, kuriuos duomenų komponentus joms apdoroti ir vėliau sujungti rezultatus, reikia specialių programavimo žinių. Svarstant apie didžiųjų duomenų apdorojimo problemas, svarbus ir faktas, kad programos daug greičiau apdoroja lokaliai saugomus duomenis, o ne tuos, kuriuos pateikia į tinklus sujungtų mašinų klasteriai.

Kokie duomenų rinkiniai yra laikomi didžiaisiais duomenimis?

Didžiųjų duomenų panaudojimų būdų skaičius prilygsta jų pačių dydžiui. Geriausiai pažįstami pavyzdžiai, ko gero, yra susiję su socialiniais tinklais ir paieškų sistemomis. Socialiniai tinklai analizuoja savo vartotojų duomenis tam, kad geriau juos pažintų ir galėtų jiems pateikti turinįbei reklamą, kuri labiausiai atitinka jų poreikius. Paieškos sistemos analizuoja užklausas ir rezultatus tam, kad vartotojams pateiktų geresnius atsakymus.

Tačiau potencialių panaudojimo būdų yra gerokai daugiau. Du vieni iš didžiausių duomenų šaltinių yra įvairios transakcijos ir sandoriai bei daiktų internetas. Sandorių duomenys fiksuoja daugybę informacijos nuo akcijų rinkų ir bankų duomenų iki pavienių vartotojų pirkimų istorijų. Daiktų internetas yra susijęs su duomenimis, kuriuos perduoda skirtingose vietose esantys jutikliai. Jie gali būti užfiksavę tiek gamyklų ar robotų kaupiamą informaciją, tiek telefono buvimo vietą, duomenis apie sunaudojamą elektrą ar apie juspatį, kai keliaujate.

Analizuodamos šiuos duomenis, organizacijos gali daug sužinoti apie vartotojus ir nustatyti tendencijas. Tikimasi, kad kuo toliau, tuo didieji duomenys galės būti analizuojami tiksliau ir pagal konkrečius poreikius.

Kaip didieji duomenys yra analizuojami?

Vienas iš geriausiai žinomų būdų, kaip žalius duomenis paversti vertinga informacija,yra MapReduce. Šis metodas yra skirtas apdoroti didelius duomenų rinkinius ir atlikti skaičiavimus, kai informacija yra išdėstyta paraleliai per kelis kompiuterius. Šis metodas yra tapęs ir modeliu, pagal kurį yra kuriamos su didžiaisiais duomenimis dirbančios programos.

MapReduce susideda iš dviejų svarbiausių dalių. Map duomenis rūšiuoja, filtruoja ir suskirsto pagal kategorijas, kad jie galėtų būti analizuojami. Reduce sujungia duomenis ir pateikia jų santrauką. Šį metodą naudojo Google, tad jis tapo tokiu patikimu, kad jo pavadinimas netgi virto bendriniu terminu, kuris apibūdina bendrą modelį, kurįdabar naudoja įvairios technologijos.

Kokie įrankiai naudojami didžiųjų duomenų analizei?

Labiausiai įsitvirtinęs ir įtakingiausias įrankis didžiųjų duomenų analizei yra Apache Hadoop. Šis karkasas yra atviro kodo ir skirtas saugoti bei apdoroti itin didelius duomenų kiekius. Hadoop gali veikti su įprasta įranga, todėl jį lengva naudoti su turimais duomenų centrais ar netgi atlikti analizę cloud’e (debesyje). Hadoop yra skirstomas į keturias dalis:

  1. Hadoop Distributed File System (HDFS) – paskirstytų failų sistema, saugykla
  2. YARN – tai platforma, skirta valdyti Hadoop išteklius, sudaryti tvarkaraščius, kurios programos veiks su Hadoop infrastruktūra
  3. MapReduce – modelis, skirtas apdoroti didelius duomenų kiekius
  4. Bibliotekų rinkiniai, skirti naudoti kitiems moduliams

Daugiau sužinoti apie Hadoop galite čia:

https://opensource.com/life/14/8/intro-apache-hadoop-big-data

Yra ir kitų įrankių. Daug dėmesio sulaukia Apache Spark. Jo pagrindinis privalumas tas, kad apdorojimui reikalingus duomenis saugo atmintyje, o ne diske, todėl įvairios analizės gali būti atliktos kartais net šimtą ar daugiau kartų greičiau. Spark gali naudoti HDFS, tačiau gali veikti ir su kitomis duomenų saugyklomis, pavyzdžiui, Apache Cassandra ar OpenStack Swift. Paleisti Spark yra paprasta bet kur, todėl testavimas ir vystymas tampa lengvas.

Daugiau sužinoti apie Apache Spark galite čia:

https://opensource.com/tags/apache-spark

Kiti darbui su didžiaisiais duomenimis skirti įrankiai

Įrankių yra ir dar daugiau. Atviro kodo sprendimų darbui su didžiaisiais duomenimis yra nesuskaičiuojama daugybė. Dauguma iš jų yra specializuoti – turi optimalias funkcijas, suteikia nišines galimybes arba veikia tik su specifine įrangos konfigūracija.

Apache Software Foundation (ASF) palaiko daugumą tokių projektų. Gal kai kurie iš jų bus naudingi ir jums.

  • Apache Beam – modelis, kuris sujungia ir partijos,ir srauto duomenis. Jis leidžia programuotojams parašyti kodą, kuris veiktų su skirtingais duomenų apdorojimo varikliais.
  • Apache Hive – tai lyg duomenų sandėlis, sukurtas remiantis Hadoop. Tai aukščiausio lygio Apache projektas, naudodamas SQL jis nuskaito, užrašo ir valdo didžiulius duomenų rinkinius.
  • Apache Impala –  tai SQL užklausųvariklis, veikiantis su Hadoop. Jis inkubuotas į Apache, turi panašią vartotojo sąsają, tačiau siekia pagerinti SQL užklausų variklį.
  • Apache Kafka leidžia vartotojams skelbti ir prenumeruoti realaus laiko duomenų srautus ir siekia tapti patikimiausiu šioje srityje.
  • Apache Lucene – tai yra teksto indeksavimo ir programinės įrangos paieškos biblioteka rekomendaciniams varikliams. Tai taip pat yra pagrindas kitiems paieškos projektams, tarp jų ir Solr bei Elasticsearch.
  • Apache Pig platforma yra skirtaanalizuoti didelių duomenų rinkinius, kurie veikia su Hadoop. Tam, kad atliktų MapReduce darbus dideliais kiekiais, jį sukūrėYahoo ir 2007 metais paskyrė ASF.
  • Apache Solr – tai įmonių paieškos platforma, sukurta su Lucene.
  • Apache Zeppelin projektas leidžia atlikti interaktyvią duomenų analizę su SQL ir kitomis programavimo kalbomis.

Kiti atviro kodo įrankiai darbui su didžiaisias duomenimis, kuriuos verta patyrinėti, yra šie:

  • Elasticsearch – kita įmonių paieškos platforma, sukurta su Lucene. Ji yra viena iš Elastic dalių (anksčiau buvo trumpinama EKLir reiškė komponentus: Elasticsearch, Kibana ir Logstash). Ji generuoja įžvalgas tiek iš struktūruotų, tiek iš nestruktūruotų duomenų.
  • Cruise Control sukūrė Linkedin tam, kad Apache Kafka klasteris veiktų didžiuliu pajėgumu.
  • TensorFlow – tai programinės įrangos biblioteka, skirta automatiniam mokymuisi (machine learning), kuri smarkiai užaugo nuo 2015 metų pabaigos, kai Google jos kodą padarė Ji labai gerbiama už tai, kad yra lengvai naudojama ir „demokratizavo” automatinį mokymąsi.

Auga ir didžiųjų duomenų kiekis,ir jų svarba, todėl atviro kodo įrankių, skirtų darbui su jais, sąrašas tikrai irgi toliau tik didės.

CodeAcademy organizuojamų Big Data kursų metu kalbėsime apie įvairius „Didžiųjų duomenų“ elementus, sužinosite informacijos analizės metodus bei duomenų bazių naudojimo būdus, išmoksite rašyti paprastas SQL užklausas ir galų gale suprastie „Big data“ rinkimą ir apdorojimą, panaudojimą ir analizių pritaikymą. Plačiau apie kursus rasite paspaudę čia.