В последнее время очень часто, как внутри команды, так и снаружи ее, я часто встречаю разное толкование понятий “Big Data” и “Data Mining”. Из-за этого растет непонимание между Исполнителем и Заказчиком относительно предлагаемых технологий и желаемого результата для обеих сторон.
Положение усугубляет отсутствие четких определений от какого-то общепринятого стандартизатора, а также разный порядок стоимости работ в глазах потенциального покупателя.

На рынке сложилось мнение, что “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)


  1. ServPonomarev
    28.09.2015 10:40

    А нельзя сказать, что Big Data = Data Mining + инфраструктура?


    1. skullodrom
      30.09.2015 18:43

      Конечно нет, дата майнинг только анализирует, а биг дата еще и собирает, но методы анализа в принципе могут пересекаться, но редко


  1. 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 используется больше в маркетинговых целях.


    1. Petrovich1999
      28.09.2015 13:45
      +1

      В то время как на ваше утверждение «Например, если мы используем RDBMS, то это уже 100% не Big Data»

      В заключение имеет смысл добавить, что многие пытаются сравнивать эти понятия между собой и другими понятиями (например, с задачей highload, как это сделал автор здесь: habrahabr.ru/company/beeline/blog/218669) по стеку программных средств. Например, если мы используем RDBMS, то это уже 100% не Big Data.

      Не могу согласиться с такой точкой зрения


  1. aml
    28.09.2015 11:24
    +3

    Не претендуя на энциклопедическую точность определения, я бы сказал, что Big data — это данные, которые невозможно эффективно обработать на одном компьютере.

    Как только задачу надо распараллеливать, возникает необходимость в целом классе технических приёмов. Никакой магии там нет.


    1. Stas911
      28.09.2015 16:41
      +1

      Я бы добавил даже — на одном ОЧЕНЬ БОЛЬШОМ компьютере, ибо в серверах сейчас доступны кучи ядер и терабайты RAM и возможно, что для конкретной задачи вполне хватит аренды времени одной такой «балалайки»


      1. 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 вообще некорректно давать количественные определения, иначе мы будем вынуждены его переписывать с каждым новым анонсом серверов.


      1. tsafin
        29.09.2015 00:12

        Да, именно так. Я даже могу очертить численную границу перехода в состояние BigData…
        [Не люблю самоцитирований, но здесь это имеет смысл]
        habrahabr.ru/post/267697/#comment_8590875

        Я полностью согласен с Девидом Кантором в его утверждении, что BigData начинаются там, где уже невозможно весь набор данных поместить в память сервера. Для текущих конфигураций 2х-сокетных серверов это где-то в районе 3ТБ twitter.com/thekanter/status/559034352474914816

        Все что меньше по размеру — «не очень Big Data»


  1. boombick
    28.09.2015 12:05
    +9

    > Итого — неструктурированных данных не существует.

    — Вы в порядке?
    — Да, в случайном


  1. booomerang
    28.09.2015 15:25
    +2

    Big Data Mining…


  1. Throwable
    28.09.2015 18:39
    +1

    Big Data — это такой фрейдизм. Сегодня каждый разведенный презентациями подкованный клиент требует себе решение BigData. Типа у него этот Data очень Big, и чтобы все стояло, требуются различные модные велосипеды типа Hadoop и NoSQL. Но как показывает практика, в итоге в 90% случаев все решается в рамках обычной RDBMS, а остальные 10% — простым скриптом, который парсит логи.

    Чтобы доходчиво объяснить что такое BigData с практической точки зрения, нужно задать вопрос: для начала у вас есть 20+ свободных машин в датацентре? Если ответ отрицательный, дальнейший разговор не имеет смысла.


  1. convex
    29.09.2015 10:08
    +2

    Недавно поймал себя на мысли, что в зарубежных data science блогах люди все меньше используют базз-ворд BigData. Даже там, где бумага его бы стерпела (с).
    Потом увидел, что даже попсовый Gartner в своем Hype Cycle 2015 года убрал «BigData» (кстати, теперь там появился «Machine Learning»).
    image
    Похоже ажиотаж наконец-то начинает стихать.


    1. atmyzone
      29.09.2015 11:32
      +1

      Machine Learning — да, новый тренд.
      Кто-то пытается камаз научить видеть, хотя лично я не понимаю, зачем камазу зрение. Носорог же как-то справляется.
      Кто-то организовывает СП в Сколково на тему Онкологии. Интересно, кто будет сидеть, в случае неверного диагноза. Внедренцы наверное думают, что разработчики, а разрабочики наверняка думают иначе.

      Многие специалисты, которые занимаются «Machine Learning» гордо загружают данные в какое-то ПО (например в SPSS) и далее программа сама подбирает (тупой брутфорс) какие-то модели, в том числе и некие нейронные сети. Однако, результат обычно редко отличается кардинально от тривиальной модели, что собственно не удивительно. Программа ведь не знает о том, какие атрибуты важны, а какие не очень. Программа не владеет предметной областью.

      Наиболее эффективно можно что-то проанализировать и предсказать только с применением человеческого мозга, когда мы создаем некий алгоритм, где параметры объекта интерпретируются с определенными весами и складываются в итоговый скоринг. Однако, можно ли это назвать машинным обучением? на мой взгляд, это обычное программирование.


      1. Danov
        30.09.2015 11:52

        > Внедренцы наверное думают, что разработчики, а разрабочики наверняка думают иначе.

        Это действительно проблема перекладывания ответственности. Обычно в software ответственность перекладывается в пользу конечного пользователя, в данном случае конкретного врача, который общается с клиентом. Но если разработанная система будет более чем на порядок точнее существующих «средних врачей» на ошибки будут закрывать глаза и постепенно поднимать точность системы.


  1. 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.