Положение усугубляет отсутствие четких определений от какого-то общепринятого стандартизатора, а также разный порядок стоимости работ в глазах потенциального покупателя.
На рынке сложилось мнение, что “Data mining” — это когда Исполнителю отгрузили дамп, он там нашел пару трендов, сгенерил отчет и получил свой миллион рублей. С “Big Data” все гораздо интереснее. Люди думают, что это нечто из черной магии, а магия стоит дорого.
Целями данной статьи являются доказательство отсутствия существенных различий между толкованием данных понятий, а также разъяснение основных темных пятен в понимании предмета.
Что такое Big Data
Вот что дает нам википедия на ru.wikipedia.org/wiki/Big_Data:
Большие данные (англ. big data) в информационных технологиях — серия подходов, инструментов и методов обработки структурированных и неструктурированных данных огромных объёмов и значительного многообразия для получения воспринимаемых человеком результатов, эффективных в условиях непрерывного прироста, распределения по многочисленным узлам вычислительной сети, сформировавшихся в конце 2000-х годов, альтернативных традиционным системам управления базами данных и решениям класса Business Intelligence.
Что мы видим? Определение, которое должно определять по виду некий предмет (большой велосипед, маленькое дерево, самокат и т.д.), определяет на самом деле некое множество методов и целей, фактически определяя некий спектр процессов. Можно ли согласиться с таким определением, с допущением того, что бег трусцой (процесс) можно обозвать чайником (предмет)? Сложно сказать, попытаемся декомпозировать определение.
Big Data — это:
- некие технологии, инструменты и методы;
- данные могут быть структурированные и неструктурированные;
- данные должны быть огромных размеров;
- в итоге обработки данных мы должны получить некий профит.
В данных компонентах определения не ясно что такое:
- неструктурированные данные;
- огромный размер.
К задачам, решаемым методами Big Data относят:
- сбор данных (парсеры, гейты и т.д.);
- хранение данных (построение сложных ХД);
- работа с данными (агрегация, анализ, описание);
- выявление взамосвязей и построение трендов (возможно, с конечной целью предсказания).
Неструктурированные данные
Вот что дает нам википедия на en.wikipedia.org/wiki/Unstructured_data:
Unstructured Data (or unstructured information) refers to information that either does not have a pre-defined data model or is not organized in a pre-defined manner. Unstructured information is typically text-heavy, but may contain data such as dates, numbers, and facts as well.
Другими словами, нам пытаются сказать, что существуют данные без структуры… Причем приводят самый убийственный пример таких данных — текст. Интересно, что сказала бы моя учительница по русскому языку и литературе, если бы узнала, что русский язык\текст не имеет четкой структуры и как следствие — годы его изучения бессмысленны, так как мы учим правила, которых, как утверждают некоторые, не существует.
Для понимания моей точки зрения приведу пример — поле text в Postgres. Допустим я положу туда JSON. Для 8 версии — это будет просто text (неструктурированные данные), для 9 — это уже будет JSON (структурированные данные). То есть одни и те же данные одновременно являются и структурированными и неструктурированными? Опять невообразимый дуализм с лекций по физике? Ответ прост — неструктурированных данных не существует, просто для некоторых видов данных пока нет общепринятых и одновременно с этим широкораспространенных методов работы с этими данными.
Грамотный читатель, конечно же, воскликнет — а как же видеоданные? Любое видео — это набор кадров. Любой кадр — это изображение. Изображения бывают двух видов:
- векторные;
- растровые.
Назвать векторные изображения неструктурированными крайне сложно. Здесь можно почитать хотя бы про SVG формат, который по сути является XML. Растровые изображения — это по факту массив точек, каждая из которых описывается вполне себе четкой структурой данных.
Итого — неструктурированных данных не существует.
Огромный размер
Здесь разночтений с общественным мнением у меня нет. Как только с объемом данных начинаются проблемы (сложно принимать, сложно хранить, сложно обрабатывать и т.д.) — у вас огромный размер (данных). Понятие довольно субъективное, для меня огромный размер измеряется в штуках. Для меня нижняя граница Big Data — миллион записей. Обоснование — запросы к СУБД со сложностью типа ?( n2 ) на таком объеме выполняются несколько минут, что для меня долго.
Для других людей обоснование\критерий может быть другой, следовательно и нижняя граница огромного размера будет иной.
Что такое Data Mining
Вот что дает нам википедия на ru.wikipedia.org/wiki/Data_mining:
Data Mining (рус. добыча данных, интеллектуальный анализ данных, глубинный анализ данных) — собирательное название, используемое для обозначения совокупности методов обнаружения в данных ранее неизвестных, нетривиальных, практически полезных и доступных интерпретации знаний, необходимых для принятия решений в различных сферах человеческой деятельности. Термин введён Григорием Пятецким-Шапиро в 1989 году.
Переведя на простой язык — у вас уже есть некий массив данных, который был уже ранее как-то обработан, а теперь вы этот массив данных обрабатываете снова, возможно как-то иначе чем прежде, и получаете некие полезные выводы, которые далее используете для получения профита.
Получается, что согласно определения википедии, декомпозиция “Data Mining” включает:
- некие технологии, инструменты и методы;
- данные уже структурированы, так как уже как-то хранятся и с ними уже как-то работают;
- данные могут быть любых размеров;
- в итоге обработки данных мы должны получить некий профит.
К задачам, решаемым методами Data Mining относят:
- работа с данными (агрегация, анализ, описание);
- выявление взамосвязей и построение трендов (возможно, с конечной целью предсказания).
Выводы
Согласно проведенным выше декмопозициям определений — Data mining как бы “выигрывает” у Big Data за счет демократичного подхода к объему данных.
Согласно списку задач, решаемым при помощи методов Big Data и Data Mining, “выигрывает” уже Big Data, так как решает задачи сбора и хранения данных.
Таким образом, если учесть, что исследовать малые объемы данных в принципе не целесообразно, то значение понятия Data Mining полностью включено в значение понятия Big Data. Следовательно, те кто говорят, что эта задача является всего лишь “Data Mining”, а не волшебная “Big Data”, говорят примерно следующее — “Это не птица, это всего лишь голубь”, что является не верным с точки зрения формальной логики, которую мы все так уважаем.
Что касается цены, то в обоих областях знаний относительно пересекающихся задач используется идентичный стек технологий, инструментов и методов. Как следствие, цена на работы тоже должна быть одного порядка.
В заключение имеет смысл добавить, что многие пытаются сравнивать эти понятия между собой и другими понятиями (например, с задачей highload, как это сделал автор здесь: habrahabr.ru/company/beeline/blog/218669) по стеку программных средств. Например, если мы используем RDBMS, то это уже 100% не Big Data.
Не могу согласиться с такой точкой зрения, потому что современные RDBMS оперируют внушительными объемами данных и позволяют внутри себя хранить данные практически любых типов, которые при правильном индексировании довольно быстро агрегируются и выдаются на уровень приложения, причем есть возможность написать собственный механизм индексирования.
Вообще, неверно классифицировать класс задач по стеку програмно-технических средств, так как любая уникальная задача требует уникального подхода, который включает те инструменты, которые максимально эффективны для решения этой конкретной задачи.
Комментарии (15)
vdmitriyev
28.09.2015 11:20+2Извините, но у вас не совсем верное «определение» big data. Более-менее адекватный сбор разных определений big data можно найти в статье "Undefined By Data: A Survey of Big Data Definitions". В то время как на ваше утверждение «Например, если мы используем RDBMS, то это уже 100% не Big Data» есть опровержение в публикации "MapReduce and parallel DBMSs: friends or foes?". На самом деле в большинстве случаев такое понятие как big data используется больше в маркетинговых целях.
Petrovich1999
28.09.2015 13:45+1В то время как на ваше утверждение «Например, если мы используем RDBMS, то это уже 100% не Big Data»
В заключение имеет смысл добавить, что многие пытаются сравнивать эти понятия между собой и другими понятиями (например, с задачей highload, как это сделал автор здесь: habrahabr.ru/company/beeline/blog/218669) по стеку программных средств. Например, если мы используем RDBMS, то это уже 100% не Big Data.
Не могу согласиться с такой точкой зрения
aml
28.09.2015 11:24+3Не претендуя на энциклопедическую точность определения, я бы сказал, что Big data — это данные, которые невозможно эффективно обработать на одном компьютере.
Как только задачу надо распараллеливать, возникает необходимость в целом классе технических приёмов. Никакой магии там нет.Stas911
28.09.2015 16:41+1Я бы добавил даже — на одном ОЧЕНЬ БОЛЬШОМ компьютере, ибо в серверах сейчас доступны кучи ядер и терабайты RAM и возможно, что для конкретной задачи вполне хватит аренды времени одной такой «балалайки»
phprus
28.09.2015 21:30+1А в соседней статье пишут (http://habrahabr.ru/post/267697/#comment_8590875):
> BigData начинаются там, где уже невозможно весь набор данных поместить в память сервера. Для текущих конфигураций 2х-сокетных серверов это где-то в районе 3ТБ twitter.com/thekanter/status/559034352474914816
Соответственно, если взять средние сервера, то задача будет из области bigdata, а если hi-end, то задача станет рядовой (у SGI есть решения с 64ТБ общей RAM).
На мой взгляд для термина BigData вообще некорректно давать количественные определения, иначе мы будем вынуждены его переписывать с каждым новым анонсом серверов.
tsafin
29.09.2015 00:12Да, именно так. Я даже могу очертить численную границу перехода в состояние BigData…
[Не люблю самоцитирований, но здесь это имеет смысл]
habrahabr.ru/post/267697/#comment_8590875
Я полностью согласен с Девидом Кантором в его утверждении, что BigData начинаются там, где уже невозможно весь набор данных поместить в память сервера. Для текущих конфигураций 2х-сокетных серверов это где-то в районе 3ТБ twitter.com/thekanter/status/559034352474914816
Все что меньше по размеру — «не очень Big Data»
boombick
28.09.2015 12:05+9> Итого — неструктурированных данных не существует.
— Вы в порядке?
— Да, в случайном
Throwable
28.09.2015 18:39+1Big Data — это такой фрейдизм. Сегодня каждый
разведенный презентациямиподкованный клиент требует себе решение BigData. Типа у него этот Data очень Big, и чтобы все стояло, требуются различные модные велосипеды типа Hadoop и NoSQL. Но как показывает практика, в итоге в 90% случаев все решается в рамках обычной RDBMS, а остальные 10% — простым скриптом, который парсит логи.
Чтобы доходчиво объяснить что такое BigData с практической точки зрения, нужно задать вопрос: для начала у вас есть 20+ свободных машин в датацентре? Если ответ отрицательный, дальнейший разговор не имеет смысла.
convex
29.09.2015 10:08+2Недавно поймал себя на мысли, что в зарубежных data science блогах люди все меньше используют базз-ворд BigData. Даже там, где бумага его бы стерпела (с).
Потом увидел, что даже попсовый Gartner в своем Hype Cycle 2015 года убрал «BigData» (кстати, теперь там появился «Machine Learning»).
Похоже ажиотаж наконец-то начинает стихать.atmyzone
29.09.2015 11:32+1Machine Learning — да, новый тренд.
Кто-то пытается камаз научить видеть, хотя лично я не понимаю, зачем камазу зрение. Носорог же как-то справляется.
Кто-то организовывает СП в Сколково на тему Онкологии. Интересно, кто будет сидеть, в случае неверного диагноза. Внедренцы наверное думают, что разработчики, а разрабочики наверняка думают иначе.
Многие специалисты, которые занимаются «Machine Learning» гордо загружают данные в какое-то ПО (например в SPSS) и далее программа сама подбирает (тупой брутфорс) какие-то модели, в том числе и некие нейронные сети. Однако, результат обычно редко отличается кардинально от тривиальной модели, что собственно не удивительно. Программа ведь не знает о том, какие атрибуты важны, а какие не очень. Программа не владеет предметной областью.
Наиболее эффективно можно что-то проанализировать и предсказать только с применением человеческого мозга, когда мы создаем некий алгоритм, где параметры объекта интерпретируются с определенными весами и складываются в итоговый скоринг. Однако, можно ли это назвать машинным обучением? на мой взгляд, это обычное программирование.Danov
30.09.2015 11:52> Внедренцы наверное думают, что разработчики, а разрабочики наверняка думают иначе.
Это действительно проблема перекладывания ответственности. Обычно в software ответственность перекладывается в пользу конечного пользователя, в данном случае конкретного врача, который общается с клиентом. Но если разработанная система будет более чем на порядок точнее существующих «средних врачей» на ошибки будут закрывать глаза и постепенно поднимать точность системы.
skullodrom
30.09.2015 18:54>Согласно проведенным выше декмопозициям определений — Data mining как бы “выигрывает” у Big Data за счет демократичного подхода к >объему данных.
Объем данных может быть любой, хотя обычно объемы у Big Data больше.
>Согласно списку задач, решаемым при помощи методов Big Data и Data Mining, “выигрывает” уже Big Data, так как решает задачи сбора и >хранения данных.
Это все равно что сравнить что руль от Мерседеса лучше чем Запорожец, т.к. Запорожец еще и едет =)
В целом не очень лаконично, более кратко нужно.
Я бы написал проще:
Data Mining это класс программ для нестандартного анализа данных, который работает только со структурированными данными.
Big Data это стек технологий и архитектурный принцип и т.д. и т.п.… который решает задачи ETL НЕструктурированных данных и в дальнейшем может включать и анализ этих данных. Хотя ничего не мешает после ETL Big Data направить данные уже в структурированном виде в Data Mining.
Хотя так же ничего не мешает Big Data не конвертировать данные в структурированный вид использовать специалезированные средства анализа заточенные именно для Big Data производить аналогичный анализ что делает Data Mining.
ServPonomarev
А нельзя сказать, что Big Data = Data Mining + инфраструктура?
skullodrom
Конечно нет, дата майнинг только анализирует, а биг дата еще и собирает, но методы анализа в принципе могут пересекаться, но редко