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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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