Pereiti prie turinio
Pagrindinis » IT ir technologijos » Didžiųjų duomenų technologijos

Didžiųjų duomenų technologijos

Kas tie didieji duomenys ir kodėl visi apie juos kalba

Turbūt jau esate girdėję terminą „didieji duomenys” arba „big data” angliškai. Skamba įspūdingai, bet kas tai iš tikrųjų reiškia? Paprasčiausiai tariant, tai tokie dideli duomenų kiekiai, kurių įprastomis priemonėmis apdoroti neįmanoma. Įsivaizduokite, kad turite ne vieną Excel lentelę su šimtu eilučių, o milijardus įrašų, kurie plūsta į jūsų sistemas kiekvieną sekundę. Štai čia ir prasideda tikrasis iššūkis.

Didieji duomenys atsirado ne iš tuščios vietos. Prieš dvidešimt metų įmonės turėjo duomenų bazėse saugomus klientų sąrašus, pardavimų ataskaitas ir tiek. Dabar kiekvienas mūsų telefonas generuoja duomenis apie tai, kur vaikštome, ką perkame, kokias programėles naudojame, net kaip greitai spaudžiame mygtukus. Socialiniai tinklai kaupia milijonus nuotraukų per dieną, automobiliai siunčia duomenis apie savo būklę gamintojams, o pramonės įrenginiai stebi šimtus parametrų kas milisekundę.

Tradicinės duomenų bazės su tokiais srautais tiesiog nesusidoroja. Čia ir ateina į pagalbą specialios didžiųjų duomenų technologijos, kurios leidžia ne tik saugoti milžiniškus kiekius informacijos, bet ir ją analizuoti, ieškoti įdomių tendencijų bei priimti verslo sprendimus.

Kaip techniškai veikia šis stebuklas

Pagrindinis didžiųjų duomenų technologijų principas – paskirstymas. Vietoj to, kad bandytume visus duomenis sukišti į vieną galingą kompiuterį, juos išskaidome į šimtus ar tūkstančius mažesnių dalių ir apdorojame daugelyje paprastesnių mašinų vienu metu. Tai kaip bandyti suvalgyti didžiulę picas vienam arba pasidalinti su draugais – antrasis variantas akivaizdžiai efektyvesnis.

Viena populiariausių sistemų, kuri tai įgyvendina, vadinama Hadoop. Ji atsirado Google inžinierių straipsniuose apie 2004 metus, o vėliau tapo atvirojo kodo projektu. Hadoop pagrindas – tai HDFS (Hadoop Distributed File System) failų sistema ir MapReduce apdorojimo mechanizmas. Skamba sudėtingai, bet idėja paprasta: jūsų duomenys išskaidomi į blokus ir išdėstomi skirtinguose serveriuose. Kai reikia ką nors apskaičiuoti, užduotis taip pat padalinama – kiekvienas serveris apdoroja savo duomenų dalį, o paskui rezultatai sujungiami.

Tarkime, norite suskaičiuoti, kiek kartų žodis „technologija” pasirodo milijarde dokumentų. Vietoj to, kad vienas kompiuteris skaitytų visus dokumentus iš eilės (tai užtruktų amžinybę), sistema paskirsto dokumentus šimtui kompiuterių. Kiekvienas suskaičiuoja savo dalį, o paskui rezultatai sudedami. Užuot laukę savaitę, atsakymą gausite per kelias minutes.

Duomenų saugojimo galvosūkis

Kai kalbame apie didžiuosius duomenis, iškyla klausimas – kur visa tai laikyti? Tradicinės reliacinės duomenų bazės, kaip MySQL ar PostgreSQL, puikiai tinka struktūrizuotiems duomenims su aiškia schema. Bet kas, jei jūsų duomenys neturi griežtos struktūros? Kas, jei šiandien saugote vartotojų vardus ir pavardes, o rytoj norite pridėti GPS koordinates, nuotraukas ir video įrašus?

Čia į sceną įžengia NoSQL duomenų bazės. Pavadinimas reiškia „Not Only SQL” – ne tik SQL. Jos sukurtos būti lanksčios ir lengvai plečiamos horizontaliai, t.y. pridedant daugiau serverių, o ne bandant įsigyti vis galingesnį kompiuterį. MongoDB, Cassandra, HBase – tai tik keletas pavyzdžių.

Įdomu tai, kad skirtingos NoSQL bazės skirtos skirtingiems tikslams. Dokumentų bazės (kaip MongoDB) puikiai tinka saugoti sudėtingus objektus su įvairiomis savybėmis. Stulpelinės bazės (kaip Cassandra) idealios laiko eilučių duomenims – pavyzdžiui, sensorių rodmenims. Grafų bazės (kaip Neo4j) neįkainojamos, kai reikia analizuoti ryšius tarp objektų – socialinių tinklų draugystes, rekomendacijų sistemas ir panašiai.

Duomenų srautų apdorojimas realiuoju laiku

Vienas dalykas – apdoroti jau sukauptus duomenis, visai kitas – daryti tai skraidančiai, kai duomenys plūsta nenutrūkstamu srautu. Įsivaizduokite finansų biržą, kur kiekviena sekundė svarbi, arba sukčiavimo aptikimo sistemą, kuri turi reaguoti akimirksniu.

Apache Kafka tapo standartu tokiems scenarijams. Tai paskirstyta srautų apdorojimo platforma, kuri veikia kaip super galingas pranešimų tarpininkas. Duomenų šaltiniai siunčia informaciją į Kafka, o įvairios programos gali ją skaityti ir apdoroti savo greičiu. Sistema užtikrina, kad niekas neprarastų, net jei vienas serveris sugenda.

Pavyzdžiui, „Uber” naudoja panašias technologijas, kad sekti visus vairuotojus ir keleivius realiuoju laiku, apskaičiuoti kainas pagal paklausą ir optimizuoti maršrutus. Kiekviena kelionė generuoja šimtus duomenų taškų – GPS koordinates, greitį, laiką, o visa tai turi būti apdorojama akimirksniu, kad sistema veiktų sklandžiai.

Apache Flink ir Apache Storm – dar dvi populiarios srautinio apdorojimo sistemos. Jos leidžia rašyti programas, kurios analizuoja duomenis jiems dar nepasiekus saugyklos. Galite skaičiuoti vidurkius, ieškoti anomalijų, filtruoti įrašus – visa tai vyksta ore, kol duomenys keliauja per sistemą.

Mašininio mokymosi ir dirbtinio intelekto vaidmuo

Didieji duomenys be mašininio mokymosi būtų kaip turėti didžiulę biblioteką, bet nemokėti skaityti. Surinkti duomenis – tai tik pusė darbo. Tikroji vertė slypi gebėjime iš jų išgauti įžvalgas, pastebėti tendencijas, kurias žmogaus akis niekada nepamatytų.

Štai kur dirbtinis intelektas tampa neatsiejama didžiųjų duomenų technologijų dalimi. Apache Spark MLlib, TensorFlow, PyTorch – šios bibliotekos leidžia treniruoti sudėtingus modelius ant milžiniškų duomenų rinkinių. Netflix analizuoja, ką žiūrite, kad rekomenduotų kitus filmus. Amazon spėja, ko jums gali prireikti, dar prieš jums tai suvokiant. Bankai aptinka sukčiavimą analizuodami milijonus transakcijų ir ieškodami neįprastų šablonų.

Įdomu tai, kad mašininis mokymasis pats tampa didžiųjų duomenų vartotoju. Norint ištreniruoti tikrai gerą modelį, reikia milijonų pavyzdžių. Pavyzdžiui, kad kompiuteris išmoktų atpažinti kates nuotraukose, jam reikia pamatyti šimtus tūkstančių katinų įvairiose pozose, apšvietimo sąlygose, su skirtingais fonais. Čia ir susiduria dvi technologijos – didieji duomenys suteikia medžiagą, o mašininis mokymasis ją paverčia žiniomis.

Privatumas ir etiniai klausimai

Kalbant apie didžiuosius duomenis, negalima apeiti jautrių temų. Kai įmonės kaupia tokius milžiniškus informacijos kiekius apie mus, kyla natūralus klausimas – ar tai saugu? Kas užtikrina, kad mūsų duomenys nebus piktnaudžiaujami?

Europa priėmė GDPR (Bendrąjį duomenų apsaugos reglamentą), kuris nustato griežtas taisykles, kaip įmonės gali rinkti ir naudoti asmeninius duomenis. Žmonės turi teisę žinoti, kokie jų duomenys kaupiami, teisę juos ištaisyti ar ištrinti. Tai verčia įmones permąstyti savo duomenų valdymo praktikas.

Bet techninė pusė taip pat svarbi. Duomenų anoniminimas, šifravimas, prieigos kontrolė – visa tai tampa būtinomis didžiųjų duomenų sistemų dalimis. Įdomu tai, kad kai kurios technologijos, kaip „differential privacy”, leidžia analizuoti duomenų rinkinius ir gauti naudingų išvadų, tuo pačiu apsaugant individualių žmonių privatumą. Tai pasiekiama pridedant kontroliuojamą triukšmą į duomenis, kad negalėtumėte identifikuoti konkretaus asmens, bet bendros tendencijos išliktų matomos.

Praktinis panaudojimas įvairiose srityse

Medicina turbūt viena įspūdingiausių sričių, kur didieji duomenys keičia žaidimo taisykles. Genomikos tyrimai analizuoja milijardus DNR sekų, ieškodami ligų priežasčių. Ligoninės naudoja pacientų duomenis, kad prognozuotų komplikacijas ir optimizuotų gydymą. Išmanieji įrenginiai stebi mūsų sveikatą 24/7 ir gali įspėti apie problemas anksčiau nei jos tampa rimtos.

Transporto sektoriuje didieji duomenys padeda optimizuoti maršrutus, mažinti spūstis, planuoti viešojo transporto tvarkaraščius. Miestai tampa „išmaniaisiais”, naudodami sensorius, kad stebėtų oro kokybę, triukšmo lygį, žmonių srautus. Visa ši informacija padeda priimti geresnius sprendimus apie miesto planavimą.

Žemės ūkyje vadinamasis „precision farming” naudoja satelitų vaizdus, orų duomenis, dirvožemio analizę, kad optimizuotų sėją, laistymą, trąšų naudojimą. Ūkininkai gali matyti, kuriose lauko dalyse augalai auga geriau, kur reikia daugiau dėmesio. Tai ne tik padidina derlių, bet ir sumažina aplinkos poveikį.

Energetikos sektoriuje išmanieji tinklai (smart grids) naudoja didžiuosius duomenis, kad subalansuotų pasiūlą ir paklausą, integruotų atsinaujinančius energijos šaltinius, prognozuotų gedimus. Jūsų išmanusis skaitiklis siunčia duomenis kas kelias sekundes, o sistema gali optimizuoti energijos paskirstymą realiuoju laiku.

Ką ateitis ruošia didžiųjų duomenų pasaulyje

Technologijos nestovi vietoje. Kvantiniai kompiuteriai, nors dar eksperimentiniai, žada revoliuciją duomenų apdorojime. Užduotys, kurios dabar užtrunka dienas ar savaites, galėtų būti išspręstos per minutes. Tiesa, kol kas tai labiau teorija nei praktika, bet pažanga akivaizdi.

Edge computing – dar viena įdomi kryptis. Vietoj to, kad siųstume visus duomenis į centrinį debesį apdoroti, vis daugiau analizės vyksta pačiuose įrenginiuose arba arti jų. Jūsų išmanusis telefonas, automobilis ar pramoninis sensorius gali atlikti dalį skaičiavimų vietoje, siųsdamas į centrą tik svarbiausią informaciją. Tai sumažina vėlavimą ir taupoma pralaidumą.

Automatizuotas mašininis mokymasis (AutoML) tampa vis prieinamesnis. Anksčiau reikėjo būti duomenų mokslo ekspertu, kad sukurtumėte gerą modelį. Dabar atsiranda įrankių, kurie automatizuoja didelę dalį proceso – parenka geriausią algoritmą, optimizuoja parametrus, net paruošia duomenis. Tai demokratizuoja dirbtinį intelektą, leisdama jį naudoti mažesnėms įmonėms ir specialistams iš kitų sričių.

Federatyvus mokymasis (federated learning) sprendžia privatumo problemą elegantiškai. Vietoj to, kad rinktume visus duomenis vienoje vietoje, modelis mokosi paskirstytai – kiekvienas įrenginys treniruoja modelį savo duomenyse, o paskui bendrinami tik modelio atnaujinimai, ne patys duomenys. Google naudoja šią techniką, kad pagerintų klaviatūros teksto spėjimą jūsų telefone, niekada nesiųsdama jūsų rašomų žinučių į savo serverius.

Realybė tokia, kad duomenų kiekis tik augs. Prognozuojama, kad iki 2025 metų pasaulyje bus generuojama 175 zetabaitų duomenų per metus. Tai skaičius su 21 nuliu. Įsivaizduoti tokį kiekį beveik neįmanoma. Todėl didžiųjų duomenų technologijos taps dar svarbiausios – ne tik versle, bet ir moksle, medicinoje, viešajame sektoriuje.

Svarbu suprasti, kad technologija pati savaime nei gera, nei bloga. Viskas priklauso nuo to, kaip ją naudojame. Didieji duomenys gali padėti išspręsti didžiausias žmonijos problemas – klimato kaitą, ligas, skurdą. Bet jie taip pat gali būti naudojami manipuliacijai, stebėjimui, diskriminacijai. Todėl diskusijos apie etiką, reguliavimą ir atsakingą naudojimą yra ne mažiau svarbios nei pačios technologijos.

Jei jus domina ši sritis, dabar puikus laikas įsitraukti. Yra daugybė nemokamų kursų, atvirojo kodo įrankių, bendruomenių. Galite pradėti nuo Python programavimo kalbos, išmokti pandas biblioteką duomenų analizei, pabandyti Apache Spark. Praktika rodo, kad geriausia mokytis darant – paimkite kokį nors viešą duomenų rinkinį ir bandykite jį analizuoti. Klaidos neišvengiamos, bet jos ir yra geriausias mokytojas.