Поиск по сайту

Введите поисковый запрос

Симптомы Big Datа: головная боль, покемоны и желтые слоники

Вторник 18 Октября Научные достижения

Big Data, «большие данные», их действительно много? Много относительно чего? Когда данные становятся «большими» и начинают пугать программистов? Это далеко не все вопросы, которые могут возникнуть у непосвященных в проблематику кодеров, да и у гуманитариев тоже. Может даже показаться, что Big Data — повсюду, и справиться с этим объемом информации невозможно. От налета мистики это явление избавил разработчик «Яндекс.Маркет» Владимир Красильщик на конференции для Java-программистов «Joker-2016. Student Edition», просто и быстро объяснив, что это за монстр.

Что такое много

Иногда говорят, что Big Datа — это когда надо «копать». Иногда, что это «треш» и «угар» или даже «философия». Но все знают точно, что Big Datа — это проблема. Чтобы мы поняли, что же это такое, я сначала приведу пример, а потом мы дадим общее определение.

Есть такая маленькая компания — Twitter. Как вы думаете, сколько твитов появляется каждый день? Портал Internet Live Stats показывает примерно 500 миллионов коротких сообщений. Это много или мало? Это Big Datа?

Предположим, вы решили открыть свою контору, где будете заниматься Интернет-аналитикой. Вам пришел заказ от компании, которая хочет знать, какие были сегодня самые популярные хештеги в твиттер. Что вы можете сделать? Вы можете взять твит, выпотрошить из него все хештеги и их уже засунуть в хранилище. Для каждого хештега будет установлен счетчик. Но это не будет работать. Потому что мы должны учесть 500 миллионов твитов в день, и ничто с этим не справится. Хорошо. Мы можем закупить больше серверов, связать их в сетку. Но это не будет работать. Потому что счетчик будет обновляться информацией, которая будет приходить из разных источников, и ни один счетчик не сможет правильно все записать или обновляться достаточно быстро. Окей, мы можем отправлять конкретный хештег на конкретный сервер. Тогда не будет путаницы. Это уже неплохое решение. Но серверы надо обслуживать, кроме того, это решение плохо адаптируется к смежным задачам — например, если мы еще захотим разделать статистику хештегов по странам или приплюсовать туда статистику из других социальных сетей. Кроме того, все мы люди, и все мы делаем ошибки.

В общем, вы в вашей конторе не выполнили задачу заказчика, не получили денег, вы — банкрот. Вы поплакали, а потом поняли, что готовы родить умное решение: оно будет не только отвечать на вопрос о популярных хештегах, но и адаптироваться под смежные задачи. Это можно делать с помощью известной лямбда-архитектуры. При этом способе обработки данных они пропускается через три уровня, которые сортируют их и классифицируют. Это в какой-то мере универсальный метод работы с Big Datа.

Откуда берется Big Datа

Big Datа — это всегда результат избыточности. Это когда данных много, потому что они появляются из-за избытка информации. Для подсчета хештегов с помощью лямбда-архитектуры нам надо было бы хранить данные со счетчиков, да и все твиты целиком. Мы даже можем, подсчитывая данные, создавать еще больше данных — например, за счет репликации. Ведь мы должны хранить одни и те же данные в разных дата-центрах на случай их потери.

Big Datа возникли в торговле. Был один забавный случай. В супермаркет пришел разъяренный папа 15-летней школьницы, потому что магазин предлагал девочке купоны на подгузники. А потом папе пришлось извиняться — оказалось, что девочка беременна. Как об этом узнал магазин? Он хранил информацию о том, что покупают те или иные посетители. Логично было предположить, что после покупки девочкой определенных товаров за ними могут последовать другие аналогичные. Когда вам предлагают дополнительные информацию, это тоже Big Datа. В этом конкретном случае это еще называется машинное обучение.

Big Datа — это головная боль

Big Datа обладают технологическими признаками. Если это Big Datа, то где-то рядом всегда есть гиперхранилища и возможность делать разные запросы. При Big Datа требуется высокая точность и надежность ввода данных. При их обработке всегда используются крутые аналитические инструменты. Крутой — это когда можно взять все данные и выдать на основе этого огромного массива какой-то результат под запрос. При этом технологии для Big Datа настолько сложные, что их изобретатели называют свои творения именами покемонов и придумывают смешные логотипы. Желтого слоника, например.

Big Datа можно также определить несколькими обязательными составляющими. Это объем. Это разнообразие — в хранилище можно «заливать» все, что угодно. Достоверность — нужно ровно столько твитов, сколько было за этот день, чтобы выяснить популярные хештеги. Скорость — потоки данных просто сумасшедшие, и, пока вы обрабатываете одну порцию, вам подают еще три. Ценность — можно работать с огромными объемами, но если после их переработки не извлекается никакая ценность или польза, то это не Big Datа. Например, вы должны первым увидеть твит о том, что ваш сосед в общаге решил «проставиться» пивом, иначе все выпьют без вас. Big Datа — это неустойчивость. Ведь если вы не успели вовремя вычленить информацию о пиве, то ваша работа с данными потеряет ценность. А представьте себе торговлю, биржевые манипуляции, где все решают доли секунды. И наконец, «большие данные» нужно уметь визуализировать. Это могут быть графики, карты с мигающими точками-маркерами бесплатного пива и все, что угодно.

Но мое самое любимое определение — другое. Без него не было бы всех предыдущих. Big Datа — это головная боль. Если вы решили какой-то проект, и он работает без вашего участия много-много времени, то это не Big Datа. Правильная работа с Big Datа начинается с обработки небольшого количества данных. Пока они обрабатываются, появляются новые. И их все больше, больше, и существовавшие программные решения для них уже не подходят. Big Datа — это постоянная адаптация..