Найти тему
VK Cloud

Пакетная обработка данных: как ускорить работу с big data в десятки раз

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

Что такое пакетная обработка данных

Система пакетной обработки данных — это когда данные обрабатывают пакетами.

То есть массив информации, сходной по смыслу или формату, помещают в некоторый контейнер, а потом производят над ней какое-то действие. Например, изменяют или отбирают нужные файлы по заданным критериям. Выбранное действие обязательно применяется сразу ко всем файлам/байтам/записям в пакете.

Как составляются пакеты данных

Существует несколько основных методов группировки информации по разным контейнерам-пакетам:

  1. По времени создания. Например, мы кладем в пакет все файлы, поступившие на сервер компании за последние 30 минут. Или все сигналы с сенсоров в турбине самолета за последние четыре полета.
  2. По типу данных. Видеофайлы в одну кучку, текст — в другую. Тут все очевидно.
  3. По источнику. Записи о перемещениях грузов на складе кладем в один пакет, записи о перемещении грузов внутри магазина — в другой. Каждая строка в этих данных может выглядеть одинаково и представлять собой запись из базы данных, но источники происхождения у них разные.
  4. По содержимому. Фотографии котов — в одной папке, фотографии собак — в другой. Современные технологии машинного обучения уже позволяют раскидывать данные по категориям с помощью разных хитрых классификаторов.
  5. Вручную по различным критериям — самый трудный метод группировки. Его до сих пор применяют на практике, когда данных не так много, а автоматические критерии не подходят. К примеру, когда надо применить один и тот же метод цветокоррекции к фотографиям с фотосессии. Выбор фотографий — дело творческое, поэтому его делают вручную.

Отобранные данные отправляются в систему пакетной обработки данных, где с ними происходят нужные действия.

Что означает обработка данных в пакетном режиме

По сути, с данными в одном пакете могут происходить всего две вещи:

  1. Применение операций. Выбранная операция применяется к каждому элементу пакета. Если это картинки — можно скорректировать цвета или повернуть их на 90 градусов. Если это видео — можно обрезать первые 30 секунд и добавить надпись поверх. Если это двоичный файл — можно его шифровать или дешифровать. Короче говоря, можно сотворить любую операцию, которая придет в голову.
  2. Фильтрация. Можно фильтровать файлы внутри пакета — например, оставить в нем только картинки с котами и удалить все остальные. Или фильтровать пакет в целом — пропускать данные на дальнейшую обработку тогда, когда в нем встретились фотки только котов. Если внутри встретится хоть одна фотка собаки — пакет целиком отбрасывается. Настройки обработки могут быть разными.

Пример решения для пакетной обработки данных, собранных в процессе работы бизнеса, — Apache Hadoop и его механизм обработки MapReduce. Он может работать с огромными массивами информации и используется, если в компании хранят big data.

Как можно выполнять операции пакетной обработки данных

Обработка данных в пакетном режиме означает, что все файлы пакета будут обработаны определенным образом: так, как вы выбрали. Происходить это может двумя способами:

  • Последовательно. В таком случае обработка выглядит как конвейерная лента, по которой перемещается пакет записей. На каждом этапе к данным применяется какая-то одна логическая операция: фильтрация или трансформация. А пакет вполне может и не доехать до конца конвейера, если где-то в середине его выкинут фильтры.
  • Параллельно. На вход системы идут несколько пакетов, все они проходят через стадии обработки сразу на нескольких компьютерах (серверах) или несколькими копиями программ.

Зачем нужны системы пакетной обработки данных

  • Для разделения сложных процессов на мелкие, понятные и легко реализуемые операции. Разбивка задач на мелкие подзадачи и применение этих подзадач к группам файлов отлично для этого подходит. Машину на заводе тоже собирают не сразу, а с помощью атомарных последовательных операций. Таким образом, пакеты — это просто способ борьбы со сложностью систем.
  • Для того чтобы ускорить работу с данными. Пакетную обработку данных можно параллелить и запускать в кластерах серверов, то есть сразу на нескольких серверах. Это позволяет производить тяжелые вычисления куда быстрей, чем на одном сервере.
  • Комбинация обеих причин — сложные многоступенчатые вычисления на больших объемах данных. Это когда тяжело, долго, много, но надо побыстрее и попроще.
Попробуйте бесплатно платформу для анализа больших данных на базе Hadoop, Spark и аналитической СУБД ClickHouse. Возможна как обработка собранных данных пакетами, так и анализ информации, поступающей в режиме реального времени.

Кто применяет системы пакетной обработки данных

Пакетную обработку нужно знать и любить всем, кто выстраивает сложные алгоритмы/процессы или работает с большими объемами данных. Обычно это делается в научных системах, проектах с высокими нагрузками или там, где работают с big data.

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

Вот и всё: теперь вы знаете о пакетной обработке столько же, сколько любой системный архитектор.)

Источник: https://mcs.mail.ru/blog/paketnaya-obrabotka-dannyh-kak-uskorit-rabotu-s-big-data-v-desyatki-raz

Что почитать по теме:
Как бизнесу выжимать из данных максимум
Где дешевле всего хранить big data
Подборка бесплатных ETL-решений для анализа данных