что такое в современном мире big data
Big Data от А до Я. Часть 1: Принципы работы с большими данными, парадигма MapReduce
Привет, Хабр! Этой статьёй я открываю цикл материалов, посвящённых работе с большими данными. Зачем? Хочется сохранить накопленный опыт, свой и команды, так скажем, в энциклопедическом формате – наверняка кому-то он будет полезен.
Проблематику больших данных постараемся описывать с разных сторон: основные принципы работы с данными, инструменты, примеры решения практических задач. Отдельное внимание окажем теме машинного обучения.
Начинать надо от простого к сложному, поэтому первая статья – о принципах работы с большими данными и парадигме MapReduce.
История вопроса и определение термина
Термин Big Data появился сравнительно недавно. Google Trends показывает начало активного роста употребления словосочетания начиная с 2011 года (ссылка):
При этом уже сейчас термин не использует только ленивый. Особенно часто не по делу термин используют маркетологи. Так что же такое Big Data на самом деле? Раз уж я решил системно изложить и осветить вопрос – необходимо определиться с понятием.
В своей практике я встречался с разными определениями:
· Big Data – это когда данных больше, чем 100Гб (500Гб, 1ТБ, кому что нравится)
· Big Data – это такие данные, которые невозможно обрабатывать в Excel
· Big Data – это такие данные, которые невозможно обработать на одном компьютере
· Вig Data – это вообще любые данные.
· Big Data не существует, ее придумали маркетологи.
В этом цикле статей я буду придерживаться определения с wikipedia:
Большие данные (англ. big data) — серия подходов, инструментов и методов обработки структурированных и неструктурированных данных огромных объёмов и значительного многообразия для получения воспринимаемых человеком результатов, эффективных в условиях непрерывного прироста, распределения по многочисленным узлам вычислительной сети, сформировавшихся в конце 2000-х годов, альтернативных традиционным системам управления базами данных и решениям класса Business Intelligence.
Таким образом под Big Data я буду понимать не какой-то конкретный объём данных и даже не сами данные, а методы их обработки, которые позволяют распредёлено обрабатывать информацию. Эти методы можно применить как к огромным массивам данных (таким как содержание всех страниц в интернете), так и к маленьким (таким как содержимое этой статьи).
Приведу несколько примеров того, что может быть источником данных, для которых необходимы методы работы с большими данными:
· Логи поведения пользователей в интернете
· GPS-сигналы от автомобилей для транспортной компании
· Данные, снимаемые с датчиков в большом адронном коллайдере
· Оцифрованные книги в Российской Государственной Библиотеке
· Информация о транзакциях всех клиентов банка
· Информация о всех покупках в крупной ритейл сети и т.д.
Количество источников данных стремительно растёт, а значит технологии их обработки становятся всё более востребованными.
Принципы работы с большими данными
Исходя из определения Big Data, можно сформулировать основные принципы работы с такими данными:
1. Горизонтальная масштабируемость. Поскольку данных может быть сколь угодно много – любая система, которая подразумевает обработку больших данных, должна быть расширяемой. В 2 раза вырос объём данных – в 2 раза увеличили количество железа в кластере и всё продолжило работать.
2. Отказоустойчивость. Принцип горизонтальной масштабируемости подразумевает, что машин в кластере может быть много. Например, Hadoop-кластер Yahoo имеет более 42000 машин (по этой ссылке можно посмотреть размеры кластера в разных организациях). Это означает, что часть этих машин будет гарантированно выходить из строя. Методы работы с большими данными должны учитывать возможность таких сбоев и переживать их без каких-либо значимых последствий.
3. Локальность данных. В больших распределённых системах данные распределены по большому количеству машин. Если данные физически находятся на одном сервере, а обрабатываются на другом – расходы на передачу данных могут превысить расходы на саму обработку. Поэтому одним из важнейших принципов проектирования BigData-решений является принцип локальности данных – по возможности обрабатываем данные на той же машине, на которой их храним.
Все современные средства работы с большими данными так или иначе следуют этим трём принципам. Для того, чтобы им следовать – необходимо придумывать какие-то методы, способы и парадигмы разработки средств разработки данных. Один из самых классических методов я разберу в сегодняшней статье.
MapReduce
Про MapReduce на хабре уже писали (раз, два, три), но раз уж цикл статей претендует на системное изложение вопросов Big Data – без MapReduce в первой статье не обойтись J
MapReduce – это модель распределенной обработки данных, предложенная компанией Google для обработки больших объёмов данных на компьютерных кластерах. MapReduce неплохо иллюстрируется следующей картинкой (взято по ссылке):
MapReduce предполагает, что данные организованы в виде некоторых записей. Обработка данных происходит в 3 стадии:
1. Стадия Map. На этой стадии данные предобрабатываются при помощи функции map(), которую определяет пользователь. Работа этой стадии заключается в предобработке и фильтрации данных. Работа очень похожа на операцию map в функциональных языках программирования – пользовательская функция применяется к каждой входной записи.
Функция map() примененная к одной входной записи и выдаёт множество пар ключ-значение. Множество – т.е. может выдать только одну запись, может не выдать ничего, а может выдать несколько пар ключ-значение. Что будет находится в ключе и в значении – решать пользователю, но ключ – очень важная вещь, так как данные с одним ключом в будущем попадут в один экземпляр функции reduce.
2. Стадия Shuffle. Проходит незаметно для пользователя. В этой стадии вывод функции map «разбирается по корзинам» – каждая корзина соответствует одному ключу вывода стадии map. В дальнейшем эти корзины послужат входом для reduce.
3. Стадия Reduce. Каждая «корзина» со значениями, сформированная на стадии shuffle, попадает на вход функции reduce().
Функция reduce задаётся пользователем и вычисляет финальный результат для отдельной «корзины». Множество всех значений, возвращённых функцией reduce(), является финальным результатом MapReduce-задачи.
Несколько дополнительных фактов про MapReduce:
1) Все запуски функции map работают независимо и могут работать параллельно, в том числе на разных машинах кластера.
2) Все запуски функции reduce работают независимо и могут работать параллельно, в том числе на разных машинах кластера.
3) Shuffle внутри себя представляет параллельную сортировку, поэтому также может работать на разных машинах кластера. Пункты 1-3 позволяют выполнить принцип горизонтальной масштабируемости.
4) Функция map, как правило, применяется на той же машине, на которой хранятся данные – это позволяет снизить передачу данных по сети (принцип локальности данных).
5) MapReduce – это всегда полное сканирование данных, никаких индексов нет. Это означает, что MapReduce плохо применим, когда ответ требуется очень быстро.
Примеры задач, эффективно решаемых при помощи MapReduce
Word Count
Начнём с классической задачи – Word Count. Задача формулируется следующим образом: имеется большой корпус документов. Задача – для каждого слова, хотя бы один раз встречающегося в корпусе, посчитать суммарное количество раз, которое оно встретилось в корпусе.
Раз имеем большой корпус документов – пусть один документ будет одной входной записью для MapRreduce–задачи. В MapReduce мы можем только задавать пользовательские функции, что мы и сделаем (будем использовать python-like псевдокод):
Функция map превращает входной документ в набор пар (слово, 1), shuffle прозрачно для нас превращает это в пары (слово, [1,1,1,1,1,1]), reduce суммирует эти единички, возвращая финальный ответ для слова.
Обработка логов рекламной системы
Второй пример взят из реальной практики Data-Centric Alliance.
Задача: имеется csv-лог рекламной системы вида:
Необходимо рассчитать среднюю стоимость показа рекламы по городам России.
Функция map проверяет, нужна ли нам данная запись – и если нужна, оставляет только нужную информацию (город и размер платежа). Функция reduce вычисляет финальный ответ по городу, имея список всех платежей в этом городе.
Резюме
В статье мы рассмотрели несколько вводных моментов про большие данные:
· Что такое Big Data и откуда берётся;
· Каким основным принципам следуют все средства и парадигмы работы с большими данными;
· Рассмотрели парадигму MapReduce и разобрали несколько задач, в которой она может быть применена.
Первая статья была больше теоретической, во второй статье мы перейдем к практике, рассмотрим Hadoop – одну из самых известных технологий для работы с большими данными и покажем, как запускать MapReduce-задачи на Hadoop.
В последующих статьях цикла мы рассмотрим более сложные задачи, решаемые при помощи MapReduce, расскажем об ограничениях MapReduce и о том, какими инструментами и техниками можно обходить эти ограничения.
Спасибо за внимание, готовы ответить на ваши вопросы.
Что такое «Big Data»?
Термин «большие данные» или «big data» начал набирать популярность с 2011 года. Сегодня его хотя бы раз слышал каждый. Проблема в том, что часто понятие используют не по определению. Поэтому давайте подробно разберемся, что это такое.
С развитием технологий количество данных стало увеличиваться в геометрической прогрессии. Традиционные инструменты перестали покрывать потребность в обработке и хранении информации. Для обработки данных, объем которых превышает сотни терабайт и постоянно увеличивается, были созданы специальные алгоритмы. Их принято называть «big data».
Сегодня информация собирается огромными объемами из разных источников: интернет, контакт-центры, мобильные устройства и т.д. Чаще всего такие данные не имеют четкой структуры и упорядоченности, поэтому человек не может использовать их для какой-либо деятельности. Для автоматизации анализа применяют технологии «big data».
Когда появились первые большие данные?
Большие данные появились в 60-70 годах прошлого столетия вместе с первыми ЦОД (центры обработки данных). В 2005 году компании начали понимать масштабы создаваемого контента пользователями интернет-сервисов (Facebook, YouTube и др.). Тогда же начала работу первая платформа, предназначенная для взаимодействия с большими наборами данных, — Hadoop. Сегодня она представляет собой большой стек технологий для обработки информации. Чуть позже популярность начала набирать NoSQL — совокупность методов для создания систем управления большими данными.
Объем генерируемой информации стал увеличиваться с появлением крупных интернет-сервисов. Пользователи загружают фотографии, просматривают контент, ставят «лайки» и т.п. Вся эта информация собирается в больших объемах для дальнейшего анализа, после которого можно вносить улучшения в работу сервисов. Например, социальные сети используют большие данные для показа пользователям релевантной рекламы (то есть той, которая соответствует их потребностям и интересам) в таргете. Это позволяет соцсетям продавать бизнесу возможность проведения точных рекламных кампаний.
Основные свойства больших данных
В самом начале статьи мы определили три основных свойства больших данных из общепринятого определения. Давайте раскроем их более подробно:
Как с ними работают?
Большие данные несут в себе много полезной информации, на основе которой компании создают новые возможности и формируют бизнес-модели. Работа с большими данными делится на 3 этапа: интеграция, управление и анализ.
На этом этапе компания интегрирует в свою работу технологии и системы, позволяющие собирать большие объемы информации из разных источников. Внедряются механизмы обработки и форматирования данных для упрощения работы аналитиков с «big data».
Полученные данные нужно где-то хранить, этот вопрос решается до начала работы с ними. Решение принимается на основе множества критериев, главными из которых считаются предпочтения по формату и технологии обработки. Как правило, для хранения компании используют локальные хранилища, публичные или частные облачные сервисы.
Большие данные начинают приносить пользу после анализа. Это заключительный этап взаимодействия с ними. Для этого применяют машинное обучение, ассоциацию правил обучения, генетические алгоритмы и другие технологии. После анализа данных остается только самое ценное для бизнеса.
Примеры использования больших данных
В общих чертах с «big data» разобрались. Но остался важный вопрос — где их можно применять практически? Ответ: в любой сфере деятельности, которая оперирует необходимыми для анализа данными. Давайте рассмотрим несколько реальных примеров. Это позволит лучше понять, для чего нужны большие данные и как от них можно получить пользу.
В российской банковской сфере большие данные первым начал использовать «Сбербанк». На основе «big data» и биометрической системы в 2014 году они разработали систему идентификации личности клиента по фотографии. Принцип работы очень простой: сравнение текущего снимка с фотографией из базы, которую делают сотрудники при выдаче банковской карты. Новая система сократила случаи мошенничества в 10 раз.
Сегодня «Сбербанк» продолжает использовать большие данные в работе: сбор и анализ информации позволяет управлять рисками, бороться с мошенничеством, оценивать кредитоспособность клиентов, управлять очередями в отделениях и многое другое.
Еще один пример из российского банковского сектора — ВТБ24. Внедрять «big data» компания начала чуть позже «Сбербанка». Сегодня они используют большие данные для сегментации и управления оттоком клиентов, формирования финансовой отчетности, анализа отзывов в интернете и многого другого.
«Альфа-Банку» большие данные помогают контролировать репутацию бренда в интернете, оценивать кредитоспособность новых клиентов, персонализировать контент, управлять рисками и т.п.
Большие данные в бизнесе
Многие ошибочно полагают, что работа с большими данными актуальна только для банковского сектора и ИТ-компаний. Это опровергает пример «Магнитогорского металлургического комбината», который разработал сервис «Снайпер» для снижения расходов сырья в производстве. Технология собирает большие объемы информации, анализирует их и дает рекомендации по оптимизации расходов материалов.
«Сургутнефтегаз» использует специальную систему для отслеживания основных бизнес-процессов в режиме реального времени. Это помогает в автоматизации учета продукции, ценообразовании, обеспечении персонала нужными данными и т.п.
Big Data в маркетинге
Маркетологи используют большие данные для прогнозирования результатов рекламных кампаний. Также анализ помогает в определении наиболее заинтересованной аудитории. Яркий пример «big data» в маркетинге — Google Trends. В систему поступает огромное количество данных, а после анализа пользователь может оценить сезонность того или иного товара (работы, услуги).
Сложности при использовании
Где есть большие возможности, там поджидают и большие трудности. Это правило не обошло стороной big data.
Первая сложность, с которой сталкиваются компании, — большие данные занимают много места. Да, технологии хранения постоянно улучшаются, но при этом и объем данных неуклонно растет (в среднем в два раза каждые два года).
Приобретение огромного хранилища не решает всех проблем. От простого хранения данных толку не будет, с ними нужно работать для получения выгоды. Отсюда вытекает другая сложность — налаживание обработки получаемых больших данных.
Сейчас аналитики тратят 50-80% рабочего времени для приведения информации в приемлемый для клиента вид. Компаниям приходится нанимать больше специалистов, что увеличивает расходы.
И еще одна проблема — стремительное развитие больших данных. Регулярно появляются новые инструменты и сервисы для работы (например, Hbase). Бизнесу приходится тратить много времени и средств, чтобы «быть в тренде» и не отставать от развития.
Таким образом, big data — это совокупность технологий обработки больших объемов информации (сотни терабайтов и более) и сегодня мало кто отрицает их важность в будущем. Их популярность будет расти и распространение в бизнесе увеличиваться. Впоследствии разработают технологии по автоматизации анализа и с big data будут работать не только крупные компании, но и средние с маленькими.
Что такое Big data: собрали всё самое важное о больших данных
Редактор блока «Технологии и бизнес».
Что такое Big data, как это работает и почему все носятся с данными как с писаной торбой: Rusbase объясняет на пальцах для тех, кто немного отстал от жизни.
Что такое Big data
Только ленивый не говорит о Big data, но что это такое и как это работает — понимает вряд ли. Начнём с самого простого — терминология. Говоря по-русски, Big data — это различные инструменты, подходы и методы обработки как структурированных, так и неструктурированных данных для того, чтобы их использовать для конкретных задач и целей.
Неструктурированные данные — это информация, которая не имеет заранее определённой структуры или не организована в определённом порядке.
Термин «большие данные» ввёл редактор журнала Nature Клиффорд Линч ещё в 2008 году в спецвыпуске, посвящённом взрывному росту мировых объёмов информации. Хотя, конечно, сами большие данные существовали и ранее. По словам специалистов, к категории Big data относится большинство потоков данных свыше 100 Гб в день.
Читайте также: Как зарождалась эра Big data
Сегодня под этим простым термином скрывается всего два слова — хранение и обработка данных.
Big data — простыми словами
В современном мире Big data — социально-экономический феномен, который связан с тем, что появились новые технологические возможности для анализа огромного количества данных.
Читайте также: Мир Big data в 8 терминах
Кеннет Кукьер: Большие данные — лучшие данные
Технология Big data
Огромные объёмы данных обрабатываются для того, чтобы человек мог получить конкретные и нужные ему результаты для их дальнейшего эффективного применения.
Читайте также: Big data: анализ и структурирование
Фактически, Big data — это решение проблем и альтернатива традиционным системам управления данными.
Техники и методы анализа, применимые к Big data по McKinsey:
Технологии:
Читайте также: Big data: семантический анализ данных и машинное обучение
Для больших данных выделяют традиционные определяющие характеристики, выработанные Meta Group ещё в 2001 году, которые называются «Три V»:
Big data: применение и возможности
Объёмы неоднородной и быстро поступающей цифровой информации обработать традиционными инструментами невозможно. Сам анализ данных позволяет увидеть определённые и незаметные закономерности, которые не может увидеть человек. Это позволяет оптимизировать все сферы нашей жизни — от государственного управления до производства и телекоммуникаций.
Например, некоторые компании ещё несколько лет назад защищали своих клиентов от мошенничества, а забота о деньгах клиента — забота о своих собственных деньгах.
Сюзан Этлиджер: Как быть с большими данными?
Решения на основе Big data: «Сбербанк», «Билайн» и другие компании
У «Билайна» есть огромное количество данных об абонентах, которые они используют не только для работы с ними, но и для создания аналитических продуктов, вроде внешнего консалтинга или IPTV-аналитики. «Билайн» сегментировали базу и защитили клиентов от денежных махинаций и вирусов, использовав для хранения HDFS и Apache Spark, а для обработки данных — Rapidminer и Python.
Читайте также: «Большие данные дают конкурентное преимущество, поэтому не все хотят о них рассказывать»
Или вспомним «Сбербанк» с их старым кейсом под названием АС САФИ. Это система, которая анализирует фотографии для идентификации клиентов банка и предотвращает мошенничество. Система была внедрена ещё в 2014 году, в основе системы — сравнение фотографий из базы, которые попадают туда с веб-камер на стойках благодаря компьютерному зрению. Основа системы — биометрическая платформа. Благодаря этому, случаи мошенничества уменьшились в 10 раз.
Big data в мире
По данным компании IBS, к 2003 году мир накопил 5 эксабайтов данных (1 ЭБ = 1 млрд гигабайтов). К 2008 году этот объем вырос до 0,18 зеттабайта (1 ЗБ = 1024 эксабайта), к 2011 году — до 1,76 зеттабайта, к 2013 году — до 4,4 зеттабайта. В мае 2015 года глобальное количество данных превысило 6,5 зеттабайта (подробнее).
К 2020 году, по прогнозам, человечество сформирует 40-44 зеттабайтов информации. А к 2025 году вырастет в 10 раз, говорится в докладе The Data Age 2025, который был подготовлен аналитиками компании IDC. В докладе отмечается, что большую часть данных генерировать будут сами предприятия, а не обычные потребители.
Аналитики исследования считают, что данные станут жизненно-важным активом, а безопасность — критически важным фундаментом в жизни. Также авторы работы уверены, что технология изменит экономический ландшафт, а обычный пользователь будет коммуницировать с подключёнными устройствами около 4800 раз в день.
Рынок Big data в России
Читайте также: Как устроен рынок Big data в России
Что касается рынка данных, он в России только зарождается. Внутри экосистемы RTB поставщиками данных выступают владельцы программатик-платформ управления данными (DMP) и бирж данных (data exchange). Телеком-операторы в пилотном режиме делятся с банками потребительской информацией о потенциальных заёмщиках.
15 сентября в Москве состоится конференция по большим данным Big Data Conference. В программе — бизнес-кейсы, технические решения и научные достижения лучших специалистов в этой области. Приглашаем всех, кто заинтересован в работе с большими данными и хочет их применять в реальном бизнесе. Следите за Big Data Conference в Telegram, на Facebook и «ВКонтакте». |
Обычно большие данные поступают из трёх источников:
Big data в банках
Помимо системы, описанной выше, в стратегии «Сбербанка» на 2014-2018 гг. говорится о важности анализа супермассивов данных для качественного обслуживания клиентов, управления рисками и оптимизации затрат. Сейчас банк использует Big data для управления рисками, борьбы с мошенничеством, сегментации и оценки кредитоспособности клиентов, управления персоналом, прогнозирования очередей в отделениях, расчёта бонусов для сотрудников и других задач.
«ВТБ24» пользуется большими данными для сегментации и управления оттоком клиентов, формирования финансовой отчётности, анализа отзывов в соцсетях и на форумах. Для этого он применяет решения Teradata, SAS Visual Analytics и SAS Marketing Optimizer.
Читайте также: Кто делает Big data в России?
«Альфа-Банк» за большие данные взялся в 2013 году. Банк использует технологии для анализа соцсетей и поведения пользователей сайта, оценки кредитоспособности, прогнозирования оттока клиентов, персонализации контента и вторичных продаж. Для этого он работает с платформами хранения и обработки Oracle Exadata, Oracle Big data Appliance и фреймворком Hadoop.
«Тинькофф-банк» с помощью EMC Greenplum, SAS Visual Analytics и Hadoop управляет рисками, анализирует потребности потенциальных и существующих клиентов. Большие данные задействованы также в скоринге, маркетинге и продажах.
Big data в бизнесе
Для оптимизации расходов внедрил Big data и «Магнитогорский металлургический комбинат», который является крупным мировым производителем стали. В конце прошлого года они внедрили сервис под названием «Снайпер», который оптимизирует расход ферросплавов и других материалов при производстве. Сервис обрабатывает данные и выдаёт рекомендации для того, чтобы сэкономить деньги на производстве стали.
Читайте также: Как заставить большие данные работать на ваш бизнес
Большие данные и будущее — одна из самых острых тем для обсуждения, ведь в основе коммерческой деятельности лежит информация. Идея заключается в том, чтобы «скормить» компьютеру большой объем данных и заставить его отыскивать типовые алгоритмы, которые не способен увидеть человек, или принимать решения на основе процента вероятности в том масштабе, с которым прекрасно справляется человек, но который до сих пор не был доступен для машин, или, возможно, однажды — в таком масштабе, с которым человек не справится никогда.
Читайте также: 6 современных тенденций в финансовом секторе
Чтобы оптимизировать бизнес-процессы,«Сургутнефтегаз» воспользовался платформой данных и приложений «in-memory» под названием SAP HANA, которая помогает в ведении бизнеса в реальном времени. Платформа автоматизирует учёт продукции, расчёт цен, обеспечивает сотрудников информацией и экономит аппаратные ресурсы. Как большие данные перевернули бизнес других предприятий — вы можете прочитать здесь.
Big data в маркетинге
Благодаря Big data маркетологи получили отличный инструмент, который не только помогает в работе, но и прогнозирует результаты. Например, с помощью анализа данных можно вывести рекламу только заинтересованной в продукте аудитории, основываясь на модели RTB-аукциона.
Читайте также: Чем полезны большие данные для рекламного бизнеса?
Big data позволяет маркетологам узнать своих потребителей и привлекать новую целевую аудиторию, оценить удовлетворённость клиентов, применять новые способы увеличения лояльности клиентов и реализовывать проекты, которые будут пользоваться спросом.
Сервис Google.Trends вам в помощь, если нужен прогноз сезонной активности спроса. Всё, что надо — сопоставить сведения с данными сайта и составить план распределения рекламного бюджета.
Читайте также: Большие данные должны приносить практическую пользу бизнесу – или умереть
Биг дата изменит мир?
От технологий нам не спрятаться, не скрыться. Big data уже меняет мир, потихоньку просачиваясь в наши города, дома, квартиры и гаджеты. Как быстро технология захватит планету — сказать сложно. Одно понятно точно — держись моды или умри в отстое, как говорил Боб Келсо в сериале «Клиника».
А что вам интересно было бы узнать о больших данных? Пишите в комментариях 🙂