Презентацию к лекции 3 Вы можете скачать здесь.
Определение больших данных
Рассмотрим, как термин «большие данные» определяется в открытых источниках.
В Русской Википедии представлено следующее определение: это серия подходов, инструментов и методов обработки структурированных и неструктурированных данных огромных объёмов для получения воспринимаемых человеком результатов. Эти методы эффективны в условиях непрерывного роста и распределения данных по многочисленным узлам. Данная область сформировалась в конце 2000‑х годов как альтернатива традиционным системам управления базами данных.
Это определение полное и содержит все верные характеристики, но оно слишком громоздкое.
Английская Википедия предлагает более короткую и ныне общепризнанную формулировку: большие данные — это термин, обозначающий совокупности данных, настолько большие и сложные, что они представляют собой проблему для обработки стандартными средствами систем управления базами данных. Иными словами, большие данные — это, прежде всего, проблема.
Существует и определение от Майкла Франклина: большие данные — это данные, которыми дорого управлять и из которых сложно извлечь ценность. Это определение хорошо с маркетинговой точки зрения. Если вы решили проблему обработки какого‑то объема данных, формально они перестают быть «большими». Но тут же возникает новая, еще более сложная задача, которую снова можно обозначить как «большие данные». Таким образом, это понятие можно бесконечно переносить на всё более сложные области.
Более операциональным представляется использование определения из Русской Википедии в сокращенном виде. Будем считать, что большие данные — это серия подходов, инструментов и методов, направленных на обработку огромных объёмов данных для получения результатов в условиях их непрерывного роста и распределенности.
Данные, информация и знания
Чтобы понять, какую ценность можно извлечь из данных, необходимо разделить три понятия: данные, информация и знания.
Данные — это совокупность зафиксированных фактов или протоколов событий. Сами по себе эти факты не являются информацией. Например, у вас есть файл размером 1 ТБ. Если вы не знаете, что в нем содержится, для вас это не информация. Она не уменьшает вашу неопределенность относительно какого‑либо объекта.
Понятие информации относительно. Один бит данных (например, вернулась жена из магазина или нет) может нести разный объем информации в зависимости от контекста. Само по себе значение «0» или «1» — это всего лишь данные. Но для субъекта, который знает контекст, это событие может быть развернуто в гораздо больший объем сведений. Следовательно, говоря об информации, мы всегда подразумеваем субъекта, который ее воспринимает.
Ещё более сложный вопрос — это знания. Будем понимать под знаниями те сведения, которые позволяют действовать с прогнозируемым результатом. У нас есть некий объем данных и некоторая метаинформация о нем (например, что это видеозаписи с Олимпиады в Сочи). Основной целью анализа больших данных является извлечение знаний. Именно знания представляют собой ту самую ценность, которая позволяет понимать, что делать дальше, и прогнозировать результаты действий.
Мы стремимся перейти от данных к автоматической реакции на новые данные. Например, программа Grock Solutions позволяет принимать автоматические решения на основе потоковых данных.
Типичные задачи здесь включают:
- Выявление отклонений в новых данных от ранее обнаруженных закономерностей.
- Прогнозирование финансового состояния.
- Предложение и принятие новых решений.
Источники данных и вызовы
Данные возникают в коммуникациях двух типов: компьютер‑компьютер и компьютер‑человек. Коммуникация компьютер‑компьютер тесно связана с развитием Интернета вещей (Internet of Things, IoT), когда устройства обмениваются информацией друг с другом по определенным протоколам, порождая огромные объемы данных для обработки.
Важный вызов — разрыв между объемом создаваемой и сохраняемой информации. Примерно с 2007 года наши возможности генерировать данные превысили возможности их хранить. Это ставит задачу выборочного сохранения наиболее ценных данных из общего потока.
Другая фундаментальная проблема — проблема перемещения данных. Рассмотрим модель: некая система записывает 80 ТБ данных в день. Это полностью занимает пропускную способность канала связи в 1 Гбит/с. Если мы захотим проанализировать данные за год, нам потребуется канал в 365 раз шире, что влечет колоссальные затраты.
MapReduce и Hadoop
Решение проблемы перемещения данных заключается в обработке информации там, где она хранится. На этом основан принцип локальности вычислений, реализованный в модели MapReduce (Мап‑Редыос). Эта модель была представлена компанией Google в 2004 году.
Вычислительная модель MapReduce состоит из двух шагов:
- Шаг Map (Мап): Данные распределены по кластеру вычислительных узлов. На каждом узле выполняется процедура первичной обработки локальных данных. Например, подсчет количества объектов определенного типа в локальном фрагменте.
- Шаг Reduce (Редыос): Результаты, полученные на шаге Map со всех узлов, собираются и агрегируются для получения итогового ответа.
Таким образом, вычисления производятся на тех же мощностях, где данные были сохранены, что позволяет избежать их дорогостоящей передачи по сети.
Наиболее популярной технологией, реализующей принцип MapReduce, является Hadoop (Хадуп). Важно понимать, что Hadoop — это не только распределенная файловая система для хранения данных, но и целый набор утилит и библиотек для распределения задач, доступа к файлам и выполнения вычислений.
Крупнейшим поставщиком коммерческих версий Hadoop и соответствующих услуг является компания Cloudera (Клаудера). Однако Hadoop — не единственная реализация MapReduce. Существуют и другие технологии, такие как NoSQL‑база данных Cassandra (Кассандра) и аналитическая система Greenplum (Гринплам).
Краткие итоги
Анализ вводных аспектов тематики больших данных позволяет увидеть фундаментальный сдвиг в парадигме работы с информацией. Традиционные подходы, основанные на централизованных базах данных, утрачивают эффективность перед лицом объемов, генерируемых современными цифровыми экосистемами. Ключевой идеей становится переход от восприятия массивов сведений как статичного архива к пониманию их как непрерывного, распределенного и слабоструктурированного потока.
В основе практической ценности анализа лежит иерархия преобразований. Сами по себе сырые данные не несут смысловой нагрузки до тех пор, пока не происходит их интерпретация субъектом, превращающая их в информацию. Однако конечной целью является извлечение знаний, которые дают возможность действовать и прогнозировать результат. Именно этот переход к автоматизированному принятию решений на основе выявленных закономерностей определяет прикладную суть дисциплины.
Техническая проблематика упирается в физические и экономические ограничения. Поскольку генерация информации опережает возможности её хранения, а стоимость передачи колоссальных массивов по сетям становится непомерной, архитектура решений меняется от перемещения данных к вычислениям к перемещению вычислений к данным. Принцип локальности, лежащий в основе MapReduce, является ответом на этот вызов. Он позволяет масштабировать анализ горизонтально, задействуя ресурсы стандартных узлов кластера, где данные уже размещены.
Понимание этих принципов формирует базу для освоения конкретных инструментов. Экосистемы, подобные Hadoop, не являются просто программным обеспечением для хранения, а представляют собой комплексные платформы для распределенных вычислений. Понимание логики их работы и ограничений позволяет специалистам корректно ставить задачи анализа, выбирать адекватные архитектурные решения и, в конечном счете, преодолевать барьер сложности, ради чего и создаются технологии больших данных.
Что такое большие данные
Определения. В Русской Википедии большие данные описываются как серия подходов, инструментов и методов обработки структурированных и неструктурированных данных огромных объёмов. Цель — получение полезных результатов в условиях непрерывного роста и распределенности данных. Английская Википедия дает более краткое определение: это данные, настолько большие и сложные, что создают проблему для стандартных СУБД. Майкл Франклин определил их как данные, которыми дорого управлять и из которых сложно извлечь ценность. Это определение удобно маркетингово, но не всегда операционально, так как после решения проблемы данные формально перестают быть «большими». В лекции за основу берется сокращенное определение из русской Википедии.
Данные, информация и знания
Крайне важно разделять три понятия для понимания ценности анализа.
- Данные — это просто зафиксированные факты или протоколы событий. Сами по себе они не информативны. Файл в 1 ТБ, содержимое которого неизвестно, — это данные, а не информация.
- Информация — это интерпретированные данные. Она всегда субъективна и снижает неопределенность для конкретного получателя. Один бит данных (например, о событии) может содержать много информации, если субъект понимает контекст.
- Знания — это сведения, позволяющие действовать с прогнозируемым результатом. Это высшая форма ценности, извлекаемая из данных.
Цель анализа больших данных — переход от сырых данных к знаниям, которые позволяют автоматически реагировать на новые данные. Примеры задач: выявление аномальных отклонений в потоке, прогнозирование финансового состояния, автоматическое принятие решений (например, системой Grock Solutions).
Источники данных и вызовы
Данные порождаются коммуникациями двух типов: компьютер‑человек и компьютер‑компьютер. Последнее тесно связано с концепцией Интернета вещей (Internet of Things, IoT), где устройства общаются друг с другом без участия человека.
Существует два ключевых вызова:
- Разрыв генерации и хранения: С ~2007 года мы генерируем данные быстрее, чем можем их сохранять. Необходимо учиться отбирать ценные данные из потока.
- Проблема перемещения данных: Если система записывает 80 ТБ в день, она полностью занимает канал связи. Для передачи этих данных в другое место для анализа потребуется канал в сотни раз шире, что крайне дорого.
Решение: MapReduce
Решение проблемы перемещения — обрабатывать данные там, где они хранятся. Это принцип локальности.
Для этого Google в 2004 году представила модель MapReduce (Мап‑Редыос). Она включает два шага:
- Map (Мап): Данные распределены по кластеру. На каждом узле выполняется локальная обработка (например, подсчет объектов на этом узле).
- Reduce (Редыос): Промежуточные результаты со всех узлов собираются и агрегируются для получения финального ответа.
Технологии: Hadoop
Самой популярной реализацией MapReduce является платформа Hadoop (Хадуп). Это не просто файловая система, а целый набор утилит и библиотек для хранения, доступа к файлам и распределения вычислительных задач по кластеру.
Крупный поставщик коммерческих версий Hadoop — компания Cloudera (Клаудера). Помимо Hadoop, существуют и другие технологии, реализующие принцип MapReduce, например, NoSQL‑база данных Cassandra (Кассандра) и аналитическая система Greenplum (Гринплам).
1. Большие данные определяются не только объемом, но и сложностью обработки стандартными средствами.
2. Термин «большие данные» может обозначать как сами массивы, так и методы работы с ними.
3. Данные — это сырые факты, а информация — это интерпретированные данные, снижающие неопределенность для конкретного субъекта.
4. Знания — это сведения, позволяющие действовать с прогнозируемым результатом; их извлечение является целью анализа.
5. Объемы генерации данных с конца 2000-х превышают возможности их сохранения.
6. Перемещение больших объемов данных по сети экономически нецелесообразно из-за ограничений пропускной способности каналов.
7. Принцип локальности вычислений предполагает перенос алгоритмов обработки к месту хранения данных.
8. Модель MapReduce состоит из шага Map (локальная обработка) и шага Reduce (агрегация результатов).
9. Hadoop является самой распространенной платформой, реализующей парадигму MapReduce для работы с большими данными.
10. Помимо Hadoop, существуют альтернативные реализации MapReduce, такие как Cassandra и Greenplum.
1. Какие ключевые характеристики больших данных выделяются в определении?
2. В чем принципиальное различие между данными и информацией с точки зрения субъекта?
3. Почему определение больших данных как «проблемы» удобно с маркетинговой точки зрения?
4. Что представляет собой знание в контексте анализа данных и какую ценность оно несет?
5. Почему возникает проблема разрыва между генерацией и хранением информации?
6. В чем суть проблемы перемещения данных при работе с большими массивами?
7. Какую роль играет принцип локальности в распределенных вычислениях?
8. Опишите последовательность действий на шагах Map и Reduce в модели MapReduce.
9. Какие компоненты входят в платформу Hadoop помимо распределенного хранения?
10. Какие альтернативные Hadoop технологии реализуют принцип MapReduce?