Общие сведения о пакетной и потоковой обработке

Завершено

Обработка данных — это просто преобразование необработанных данных в осмысленную информацию. Существует два основных способа обработки данных:

  • Пакетная обработка, при которой несколько записей данных собираются и сохраняются перед совместной обработкой в рамках одной операции.
  • Потоковая обработка, при которой источник данных постоянно отслеживается и обрабатывается в режиме реального времени по мере появления новых событий данных.

Общие сведения о пакетной обработке

При пакетной обработке собираются и сохраняются элементы данных, и вся группа обрабатывается в виде пакета. Точное время отработки каждой группы можно определить несколькими способами. Можно обрабатывать данные на основе запланированного интервала времени (например, каждый час), поступления определенного объема данных или другого события.

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

Схема автомобилей, подсчитываемых на стоянке.

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

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

Преимущества пакетной обработки включают в себя следующее:

  • Большие объемы данных можно обрабатывать в удобное время.
  • Можно выбрать время, когда компьютеры или системы могут простаивать, например ночью или в часы наименьшей нагрузки.

Недостатки пакетной обработки включают в себя следующее:

  • Временная задержка между приемом данных и получением результатов.
  • Все входные данные пакетного задания должны быть готовы, прежде чем можно будет обработать пакет. Это означает, что данные должны быть тщательно проверены. Проблемы с данными, ошибки и сбои программ, возникающие во время выполнения пакетных заданий, приводят к остановке всего процесса. Перед повторным запуском задания необходимо тщательно проверить входные данные. Даже незначительные ошибки данных могут помешать выполнению пакетного задания.

получение сведений о потоковой обработке;

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

Например, лучшим подходом к нашей гипотетической задаче подсчета автомобилей может быть применение подхода потоковой передачи — подсчет проезжающих мимо автомобилей в реальном времени:

Схема автомобилей, подсчитываемых по мере их прохождения.

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

Реальные примеры потоковой передачи данных:

  • Финансовое учреждение отслеживает изменения на фондовой бирже в режиме реального времени, рассчитывает стоимость, подверженную риску, и автоматически перебалансирует портфели на основе изменений цены акций.
  • Компания, занимающаяся разработкой и поддержкой сетевых игр, собирает данные в режиме реального времени о взаимодействии между игроками и игрой и передает их в свою игровую платформу. Затем она анализирует данные в режиме реального времени, предоставляя поощрения и динамические возможности для привлечения игроков.
  • Посвященный сделкам с недвижимостью веб-сайт, который отслеживает подмножество данных, поступающих с мобильных устройств, и в режиме реального времени предлагает рекомендации по объектам недвижимости, доступным для посещения, в зависимости от географического положения.

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

Общие сведения о различиях между пакетными и потоковыми данными

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

  • Область данных. Пакетная обработка может охватывать все данные в наборе данных. Потоковая обработка обычно имеет доступ только к данным, полученным недавно или в течение интервала времени (например, за последние 30 секунд).

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

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

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

Сочетание пакетной и потоковой обработки

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

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

На следующей схеме показаны некоторые способы объединения пакетной и потоковой обработки в крупномасштабной архитектуре аналитики данных.

Схема архитектуры аналитики данных, которая включает пакетную и потоковую обработку.

  1. События данных из источника потоковой передачи данных фиксируются в режиме реального времени.
  2. Данные из других источников поступают в хранилище данных (часто это озеро данных) для пакетной обработки.
  3. Если аналитика в реальном времени не требуется, собранные потоковые данные записываются в хранилище данных для последующей пакетной обработки.
  4. Если аналитика в реальном времени нужна, используется технология потоковой обработки для подготовки потоковых данных для визуализации или анализа в реальном времени; часто путем фильтрации или агрегирования данных по временным окнам.
  5. Непотоковые данные периодически обрабатываются в пакетном режиме для подготовки к анализу, а результаты сохраняются в хранилище аналитических данных (часто называемом хранилищем данных) для исторического анализа.
  6. Результаты потоковой обработки также могут сохраняться в хранилище аналитических данных для поддержки исторического анализа.
  7. Аналитические инструменты и инструменты визуализации используются для представления и изучения данных в режиме реального времени и исторических данных.

Примечание.

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