Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
40_алгоритмов_Python.pdf
Скачиваний:
8
Добавлен:
07.04.2024
Размер:
13.02 Mб
Скачать

11

Алгоритмы обработки данных

Эта глава посвящена алгоритмам, ориентированным на данные. Мы сфокуси­ руемся на трех задачах: хранении, потоковой передаче и сжатии данных. Начнем с краткого обзора алгоритмов обработки данных. Затем обсудим стратегии хранения данных, научимся применять алгоритмы к потоковым данным и изу­ чим различные методологии сжатия. Наконец, применим изученные концепции для анализа тональности твитов в режиме реального времени.

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

Итак, в главе рассматриваются следующие темы:

zz Классификация данных.

zz Алгоритмы хранения данных. zz Алгоритмы сжатия данных.

zzАлгоритмы потоковой передачи данных.

Давайте познакомимся с основными понятиями.

ЗНАКОМСТВО С АЛГОРИТМАМИ ОБРАБОТКИ ДАННЫХ

Осознаем мы это или нет, но мы живем в эпоху больших данных. Чтобы полу­ чить представление о том, сколько данных генерируется каждую секунду, взгля­ ните на некоторые цифры, опубликованные Google за 2019 год. Как мы знаем,

Знакомство с алгоритмами обработки данных

295

Google Фото — это мультимедийное хранилище для фотографий. В 2019 году в Google Фото ежедневно загружалось в среднем 1,2 миллиарда фотографий и видео. Кроме того, в среднем 400 часов видео (1 ПБ данных) ежеминутно вы­ кладывалось на YouTube. Можно с уверенностью сказать, что объем генерируе­ мых данных вырос просто лавинообразно.

Сегодня интерес к алгоритмам на основе данных связан с возможностью извлечь как ценную информацию‚ так и закономерности. При правильном использова­ нии данные могут стать основой для принятия решений в сфере политики, маркетинга, управления и анализа тенденций.

Так что вполне понятно‚ что алгоритмы, которые работают с данными, приоб­ ретают все большее значение. Разработка таких алгоритмов — это область ак­ тивных исследований. Нет сомнений в том, что поиск наилучших способов использования данных для получения измеримой выгоды находится в центре внимания различных организаций, предприятий и правительств по всему миру. Но данные в необработанном виде бесполезны. Чтобы извлечь информацию из таких данных, их необходимо обработать, подготовить и проанализировать.

Для начала сами данные нужно где-то хранить. Все большее значение приоб­ ретают эффективные методологии хранения данных. Из-за ограничений физи­ ческой памяти однонодовых систем большие данные могут находиться только в распределенном хранилище. Оно состоит из нескольких нод, соединенных высокоскоростными каналами связи. Изучение алгоритмов обработки данных разумно начать с рассмотрения различных алгоритмов хранения.

Прежде всего разделим данные по категориям.

Классификация данных

Давайте разберемся, как классифицируются данные в контексте создания ал­ горитмов их обработки. Как обсуждалось в главе 1, для этого используются параметры объема, разнообразия и скорости (3V). Такая классификация может стать основой для разработки алгоритмов‚ предназначенных для хранения и об­ работки данных.

Рассмотрим эти характеристики по порядку.

zz Объем (Volume) определяет количество данных, которые необходимо хранить

иобрабатывать. По мере увеличения объема задача становится трудоемкой

итребует выделения достаточного количества ресурсов для хранения, кэши­ рования и обработки. Для обозначения огромных массивов данных, которые