Големи данни: размерът има значение
Когато обемите данни се измерват с петабайтове и екзабайтове. Когато те непрекъснато се менят, а информацията е толкова разнообразна и сложна, че всеки опит да се подредят и структурират изглежда неизпълним.
Когато обичайните средства не се справят, на сцената излизат нови подходи, помагащи да се извлече ценна информация от колосални и на пръв поглед хаотични масиви данни.
Появата на термина „големи данни“ (Big Data) обикновено се приписва на редактора на сп. Nature Клифърд Линч. Независимо от академичния произход това понятие остава доста размито. Под големи данни се разбира цяла редица технологии и решения, позволящи работа с огромни масиви информация, които човечеството е започнало да произвежда в последните десетилетия.
Активността на потребителите на социалните мрежи и спътниковите наблюдения, снимките на космическите обсерватории и трансакции на финансовите борси, мултимедийните библиотеки и телеметрията – този списък сам по себе си е достатъчно голям и разнообразен. Но всичко това са големи данни и за всички тях са характерни три „V”: огромен обем (volume), голяма скорост на обновление (velocity) и разнообразие на входната информация (variety).
Обемът
Възможността да се обработват значителни обеми информация е ключова особеност на големите данни. Колкото повече сведения сте способни да осмислите, толкова по-верни ще бъдат вашите решения. Прогнозата за времето, направена въз основа на хиляди наблюдения, никога няма да е толкова точна както тази, построена с помощта на милиони. Но за да се справите с такава задача, са ви необходими съответни изчислителни мощности.
За решаването на най-ресурсоемките изчислителни задачи може да се използват производителни програмно-апаратни комплекси, а може да се разпредели тази работа в мрежа, обединяваща множество обикновени компютри. Всеки участник в тази мрежа отделя част от своите мощности и памет за „общото дело“. Принципно тяхната работа се координира и насочва от централен възел в мрежата, макар и тази задача да може да се реши разпределено.
Едно от най-популярните средства за реализация на разпределени изчисления е отвореният проект Hadoop, позволяващ работа на клъстери с хиляди възли.
Благодарение на технологията MapReduce данните се разпределят и обработват от тях паралелно, след което се обединяват и главният възел на мрежата показва резултата. Сред най-известните ползватели на Hadoop е компанията Facebook: препоръките на нови приятели и публикации се издават след обработката на Hadoop клъстера.
Водещият консултант на компанията R-Style Николай Сосиков разказва пред STRF.ru: „Всичко започна, разбира се, с чиста математика. Но сама по себе си чистата математика на никого не е нужна и големите данни започнаха да се развиват, когато станаха необходими на бизнеса. Става дума не само за големи IT компании.
Например, ако говорим за банков сектор или ритейл, стартирането на маркетингови кампании е трудно да се следи само по директните покупки и търсенията на клиентите. Важна е информацията за това, което пишат във връзка с нея в математически сайтове, форуми и блогове, социални мрежи. Иска ни се да отчитаме всичко това и да реагираме бързо. Отделно може да си спомним за сектора на телекомуникациите – те имат много базови станции, датчици за телеметрия, метеорология – това е просто вихрушка от данни, която се налага да бъде следена.“
Скорост
Оперативността на обработка на информацията вероятно е не по-малко важна, отколкото нейния обем. В бързо променящия се свят скоростта означава много – никой няма да пресече улицата, оглеждайки се в продължение на 10 минути преди това. Но скоростта на преработка на данни е важна не само за своевременна реакция. Понякога да се натрупа голям масив информация, е невъзможно технически и се налага да той да се осмисля още преди съхранението.
Например данните от детекторите на Големия адронен колайдер преминават предварителен анализ още преди записването, иначе да се прави това в режим на реално време, би било просто нереално. Големите данни предлагат собствени методи за решаване на този проблем – такива като асоциативна памет.
Да си спомним, че в оперативната памет (RAM) на обикновения компютър всяка дума се съхранява в отделна клетка и за да се получи тя, е необходимо да се знае точният ѝ адрес. Ако той е известен, компютърът моментално намира необходимата дума, а ако не – започва да прехвърля един адрес след друг.
Асоциативната памет (САМ) работи точно обратно – задавайки дума, може да се получи адресът, на който се намира тя, а заедно с това и целият масив разположена в съседство и свързана с нея информация. Търсенето в такава памет работи много по-бързо и позволява да се откриват дори неясно зададени или увредени данни.
„Ако си спомним обичайните, традиционни системи за управление на бази данни, то това винаги е нормализирана система. Данните в тях по определен начин са подредени и структурирани, между тях са прокарани необходимите взаимовръзки – разказва Николай Сосиков. – Ако говорим за програмно-апаратни комплекси с големи данни, те „размазват“ тази информация, денормализират я с помощта на специални алгоритми. Самите тези алгоритми са търговска тайна на разработчиците, но в резултат позволяват бързо да се обработва тази информация. Да речем данните при това постоянно се прехвърлят, тяхното положение се подрежда в зависимост от честотата на търсене на едни или други сведения.“
Разнообразие
Едва ли някъде в реалния живот, извън страниците на учебниците, съществуват готови, забележително подредени масиви данни. Принципно – а с големите данни практически винаги – ни се налага да си имаме работа с разнообразна информация, постъпваща от различни източници.
„Лайковете“ на потребителите на Facebook, техните снимки от Instagram, данните от тяхното геопозициониране през Foursquare, сведенията за тяхното търсене в Google – всичко това може (а понякога е и необходимо) да се обедини, съпостави и анализира.
Процесът на търсене на необходимото решение в такъв хаотичен масив също изисква специални подходи – такива като генетични алгоритми. Те се основават на два ключови принципа на естествена изолация – изменчивост и подбор.
Началната популация решения се кръстосват помежду си и „мутират“, променяйки се на случаен принцип. Крайните модули пораждат ново поколение, преминаващо през етап селекция, на който се избират вариантите, които най-добре подхождат за търсеното решение, а другите се отхвърлят. Процесът се повтаря отново и отново, докато не бъде открит – по-точно породен – вариантът, удовлетворяващ зададените критерии.
След множество поколения такъв път може да доведе до решение, работещо доста ефективно, без никой да може да обясни защо. Например с помощта на генетичен алгоритъм и компютърно моделиране са разработени сложни (и много странни на вид) антени за експерименталните микроспътници ST5.
Живите данни
Описаните технологии са само върхът на айсберга при решаването на големите данни. Но вече от тях възниква интересно сходство на големите данни с живата природа. „Как работи мозъкът? Ако ние искаме да си спомним нещо, не ровим из цялата си памет, а използваме асоциативни връзки в рамките на невронните мрежи, попадайки на необходимото място практически моментално. Освен това тази мрежа постоянно се обучава, оптимизира се в зависимост от търсенето“, казва Николай Сосиков.
Асоциативните отношения, самообучението, генетичните алгоритми, възможността за работа с разнообразни данни, разпределянето на тяхната обработка – всички тези особености на нашата собствена нервна система, развиващи се в резултат от еволюционните процеси, са се появили и в съвременните изчислителни технологии.