Изменения
Нет описания правки
== Терминология и история ==
Сам термин "большие данные" - часто трактуется очень неоднозначно, т. к. так как в ходе истории компьютерной техники объём данных и носителей этих данных возрастал в геометрической прогрессии. 50 лет назад жёсткий диск на 5 мегабайт нельзя было поднять без помощи автопогрузчика. В наши же дни маленькая коробочка весом в полкило может вмещать до нескольких терабайт данных (а то и десятков терабайт), а данные, хранящиеся на различных серверах можно исчислять петабайтами. Поэтому вопрос, какие же данные считать большими, довольно запутанный.
В качестве универсального решения было принято так, что те данные, которые невозможно уместить на одном сервере, можно называть "большими". Но это далеко не все признаки "больших" данных. В наше время на серверных кластерах информация постоянно двигается, существует понятие "поток данных", генерируется много новой информации, и всё это постоянно записывается и перезаписывается. Из-за этого также возникает ряд проблем, но об этом позже.
== Признаки больших данных. Правило VVV ==
Чтобы массив информации обозначить приставкой «big» он должен обладать следующими признаками:
* Volume (Объем) – {{---}} данные измеряются по физической величине и занимаемому пространству на цифровом носителе. К «big» относят массивы свыше 150 Гб в сутки.* Velocity (Скорость, обновление) – {{---}} информация регулярно обновляется и для обработки в реальном времени необходимы интеллектуальные технологии больших данных.* Variety (Разнообразие) – {{---}} информация в массивах может иметь неоднородные форматы, быть структурированной частично, полностью и скапливаться бессистемно. Например, социальные сети используют большие данные в виде текстов, видео, аудио, финансовых транзакций, картинок и прочего.
В современных системах рассматриваются два дополнительных фактора:
* Variability (Изменчивость) – {{---}} потоки данных могут иметь пики и спады, сезонности, периодичность. Всплески неструктурированной информации сложны в управлении, требует мощных технологий обработки.* Value (Значение данных) – {{---}} информация может иметь разную сложность для восприятия и переработки, что затрудняет работу интеллектуальным системам. Например, массив сообщений из соцсетей – {{---}} это один уровень данных, а транзакционные операции – {{---}} другой. Задача машин определить степень важности поступающей информации, чтобы быстро структурировать.
== Особенности и трудности работы с большими данными ==
== Порядок работы с большими данными ==
Чтобы эффективно обрабатывать и анализировать большие данные, существуют такие инструменты как "[https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C аналитические модели]". Такие модели способны строить гипотезы на основе больших данных, искать в них зависимости и закономерности - всю самую полезную для большинства бизнес-задач информацию. Для этого большие данные проходят через несколько этапов:
1. [http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5#.D0.9A.D0.BE.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BF.D1.80.D0.B8.D0.B7.D0.BD.D0.B0.D0.BA.D0.BE.D0.B2 Чистка данных ] (англ. data cleaning) – поиск и исправление ошибок в первичном наборе информации, например, ошибки ручного ввода (опечатки), некорректные значения с измерительных приборов из-за кратковременных сбоев и т.д.;
2. Генерация предикторов [http://neerc.ifmo.ru/wiki/index.php?title=%D0%A3%D0%BC%D0%B5%D0%BD%D1%8C%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%BD%D0%BE%D1%81%D1%82%D0%B8#.D0.92.D1.8B.D0.B1.D0.BE.D1.80_.D0.BF.D1.80.D0.B8.D0.B7.D0.BD.D0.B0.D0.BA.D0.BE.D0.B2 Работа с признаками] (англ. feature engineering) – генерация переменных для построения аналитических моделей;
3. [http://neerc.ifmo.ru/wiki/index.php?title=%D0%9C%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%B0_%D0%B8_%D0%B5%D1%91_%D0%B2%D1%8B%D0%B1%D0%BE%D1%80 Построение ] и обучение аналитической модели (англ. model selection) для предсказания целевой (таргетной) переменной. Так проверяются гипотезы о зависимости таргетной переменной от предикторов;
На практике это помогает решить множество задач. Например, проанализировать, как связаны отказы оборудования с условиями подачи напряжения, или определить вероятность своевременного возврата кредита частным заемщиком.
== Методы обработки больших данных ==
К основным методам сбора и анализа больших данных относят следующие:
* Data Mining "Добыча" данных (англ. data mining) – обучение ассоциативным правилам, классификация, кластерный и регрессионный анализ;
* краудсорсинг — категоризация и обогащение данных народными силами, т.е. с добровольной помощью сторонних лиц;
* смешение и интеграция разнородных данных, таких как, цифровая обработка сигналов и обработка естественного языка;
== Примеры реализации алгоритмов с использованием Spark MLlib ==
Рассмотрим удобство использования Apache Spark на примере. Решим задачу “Hello world” из мира Big Data {{- --}} подсчет слов в файле.
sparkContext.textFile("hdfs://...")
.flatMap(line => line.split(" "))