Способ пакетной обработки данных

Пакетная обработка — Batch processing

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

СОДЕРЖАНИЕ

История

Термин «пакетная обработка» происходит от традиционной классификации методов производства на производство по заданию (разовое производство), серийное производство (производство «партии» нескольких изделий одновременно, по одной стадии за раз) и поточное производство. (серийное производство, все этапы сразу).

Ранняя история

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

По мере того, как компьютеры становились все быстрее, время настройки и демонтажа становилось все больше и больше доступного компьютерного времени. Были разработаны программы, называемые мониторами , предшественники операционных систем , которые могли обрабатывать серию или «пакет» программ, часто с магнитной ленты, подготовленной в автономном режиме. Монитор загружается в компьютер и запускает первое задание пакета. В конце задания он восстанавливает контроль, загружается и запускается до тех пор, пока пакет не будет завершен. Часто выходные данные партии записывались на магнитную ленту и распечатывались или перфорировались в автономном режиме. Примерами мониторов были IBM Fortran Monitor System , SOS (Share Operating System) и, наконец, IBSYS для систем IBM 709x в 1960 году.

Системы третьего поколения

Компьютеры третьего поколения, способные к мультипрограммированию, начали появляться в 1960-х годах. Вместо одновременного выполнения одного пакетного задания в этих системах может одновременно выполняться несколько пакетных программ, чтобы обеспечить максимальную загрузку системы. Одна или несколько программ могут ожидать ввода, одна активно работает на ЦП, а другие генерируют вывод. Вместо автономного ввода и вывода программы, называемые спулерами, считывают задания с карт, дисков или удаленных терминалов и помещают их в очередь заданий для выполнения. В целях предотвращения тупиков планировщик заданий должно знать требования-память ресурсов каждого задания, в магнитных ленты, монтируемые диски так различные языки сценариев были разработаны, и т.д., чтобы предоставить эту информацию в структурированном виде. Вероятно, наиболее известным является язык управления заданиями IBM (JCL). Планировщики заданий выбирают задания для выполнения в соответствии с множеством критериев, включая приоритет, размер памяти и т. Д. Удаленная пакетная обработка — это процедура отправки пакетных заданий с удаленных терминалов, часто оснащенных устройством чтения перфокарт и линейным принтером . Иногда асимметричная многопроцессорная обработка используется для буферизации пакетного ввода и вывода для одного или нескольких больших компьютеров с помощью подключенной меньшей и менее дорогой системы, как в IBM System / 360 Attached Support Processor .

Более поздняя история

С конца 1960-х годов стали распространены интерактивные вычисления, например, через текстовые компьютерные терминальные интерфейсы (как в оболочках Unix или циклы чтения-оценки-печати ), а позже и графические пользовательские интерфейсы . Неинтерактивное вычисление, как единовременный рабочие мест , такие как составление и обработка нескольких элементов в партии, стали задним числом называется пакетной обработкой , и срок пакетного задания (в начале использования часто «партия из рабочих мест») стала обычным явлением. Раннее использование особенно широко используется в Мичиганском университете , в районе Терминальной системы Мичигана (MTS).

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

Непрерывный

Неинтерактивные вычисления по-прежнему широко используются в вычислениях, как для общей обработки данных, так и для задач «домашнего хозяйства» системы (с использованием системного программного обеспечения ). Программа высокого уровня (выполняющая несколько программ с некоторой дополнительной «связующей» логикой) сегодня чаще всего называется сценарием и написана на языках сценариев , в частности сценариях оболочки для системных задач; в IBM PC DOS и MS-DOS это называется пакетным файлом . Сюда входят компьютеры на базе UNIX , Microsoft Windows , macOS (основой которой является ядро BSD Unix) и даже смартфоны . Запущенный сценарий, особенно тот, который выполняется из интерактивного сеанса входа в систему , часто называют заданием , но этот термин используется очень неоднозначно.

Читайте также:  Каким способом определить серебро это или нет

«Нет прямого аналога пакетной обработки z / OS в системах ПК или UNIX. Пакетные задания обычно выполняются в запланированное время или по мере необходимости. UNIX, хотя различия значительны ».

Современные системы

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

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

Современные пакетные приложения используют современные пакетные среды, такие как Jem The Bee , Spring Batch или реализации JSR 352, написанные для Java , и другие структуры для других языков программирования, чтобы обеспечить отказоустойчивость и масштабируемость, необходимые для обработки больших объемов данных. Чтобы обеспечить высокую скорость обработки, пакетные приложения часто интегрируются с решениями для распределенных вычислений, чтобы разделить пакетное задание на большое количество процессоров, хотя при этом возникают серьезные проблемы программирования. Пакетная обработка больших объемов данных предъявляет особенно высокие требования к архитектуре системы и приложений. Архитектуры с высокой производительностью ввода / вывода и вертикальной масштабируемостью , включая современные мэйнфреймы , обычно обеспечивают лучшую производительность пакетной обработки, чем альтернативы.

Языки сценариев стали популярными по мере их развития вместе с пакетной обработкой.

Пакетное окно

Партия окно является «периодом менее интенсивной деятельности в Интернете», когда компьютерная система находится в состоянии запуска пакетных заданий без вмешательства со стороны , или с интерактивными онлайновыми системами.

Работа банка в конце дня (EOD) требует концепции переключения , при которой транзакция и данные отключаются для пакетной активности определенного дня («депозиты после 15:00 будут обработаны на следующий день»).

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

Размер партии

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

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

Обычное использование пакетной обработки

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

Известные среды пакетного планирования и выполнения

IBM мэйнфреймов г / OS операционной системы или платформы имеет , пожалуй, наиболее изысканный и эволюционировали набор пакетной обработки объектов благодаря своему происхождению, долгой истории и продолжающейся эволюции. Сегодня такие системы обычно поддерживают сотни или даже тысячи одновременных интерактивных и пакетных задач в одном образе операционной системы . Технологии, которые помогают одновременной пакетной и онлайн-обработке, включают язык управления заданиями (JCL), языки сценариев, такие как REXX , подсистему ввода заданий ( JES2 и JES3 ), диспетчер рабочей нагрузки (WLM), диспетчер автоматического перезапуска (ARM), службы восстановления ресурсов (RRS). , Совместное использование данных DB2 , Parallel Sysplex , уникальные оптимизации производительности, такие как HiperDispatch , архитектура каналов ввода-вывода и некоторые другие.

Читайте также:  Как посолить горбушу под семгу сухим способом

Программы для Unix cron , at и batch (сегодня batch представляет собой вариант at ) позволяют для комплексного планирования рабочих мест. В Windows есть планировщик заданий . Большинство высокопроизводительных вычислительных кластеров используют пакетную обработку для максимального использования кластера.

Источник

Пакетная обработка

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

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

Когда следует использовать это решение

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

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

Сложности

Формат данных и кодирование. Некоторые из самых сложных проблем возникают, когда файлы используют непредвиденный формат или кодирование. Например, исходные файлы могут использовать сочетание кодировки UTF-16 и UTF-8, содержать непредвиденные разделители (пробел вместо знака табуляции) или символы. Другим распространенным примером являются текстовые поля, содержащие вкладки, пробелы или запятые, которые интерпретируются как разделители. Логика загрузки и анализа данных должна быть достаточно гибкой, чтобы обнаруживать и обрабатывать такие проблемы.

Согласование временных срезов. Часто исходные данные помещаются в иерархию папок, которая отображает окна обработки, упорядоченные по годам, месяцам, дням, часам и т. д. В некоторых случаях данные могут быть получены позднее. Например, предположим, что веб-сервер выходит из строя, а журналы за 7 марта не попадают в папку для обработки до 9 марта. Они просто пропускаются, так как получены слишком поздно? Может ли подчиненная логика обработки обрабатывать записи, полученные в неправильном порядке?

Architecture

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

Хранилище данных. Обычно это распределенное хранилище файлов, которое может служить репозиторием для значительных объемов больших файлов в различных форматах. Зачастую этот тип хранилища часто называют Data Lake.

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

Хранилище аналитических данных. Многие решения по обработке больших данных спроектированы так, чтобы подготавливать данные к анализу и предоставлять их в структурированном формате для запросов через средства аналитики.

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

Читайте также:  Затратный способ оплаты медицинской помощи

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

Выбор технологий

Мы рекомендуем применять следующие технологии для пакетной обработки данных в Azure.

Хранилище данных

  • Контейнеры больших двоичных объектов хранилища Azure. Многие существующие бизнес-процессы Azure уже используют хранилище больших двоичных объектов Azure, что делает это хорошим выбором для хранилища больших данных.
  • Azure Data Lake Store. Azure Data Lake Store предлагает практически неограниченное хранилище для файлов любого размера и широкие возможности обеспечения безопасности, что удобно для хранения чрезвычайно крупных решений обработки больших данных, для которых требуется централизованное хранилище содержимого в гетерогенных форматах.

Пакетная обработка

  • U-SQL. Это язык обработки запросов, используемый в Azure Data Lake Analytics. Он сочетает декларативный характер SQL с процедурной расширяемостью C# и обеспечивает эффективную обработку данных в значительном масштабе за счет параллелизма.
  • Hive. Это SQL-подобный язык, который поддерживается в большинстве дистрибутивов Hadoop, включая HDInsight. Он может использоваться для обработки данных из любого хранилища, совместимого с HDFS, включая хранилище BLOB-объектов Azure и Azure Data Lake Store.
  • Pig. Это декларативный язык обработки больших данных, используемый во многих дистрибутивах Hadoop, включая HDInsight. Он особенно удобен для обработки данных, которые не структурированы или структурированы частично.
  • Spark. Платформа Spark поддерживает программы пакетной обработки, написанные на разных языках, включая Java, Scala и Python. Spark использует распределенную архитектуру для параллельной обработки данных в нескольких рабочих узлах.

Дополнительные сведения см. в статье о пакетной обработке.

Хранилище аналитических данных

  • Azure Synapse Analytics. Azure синапсе — это управляемая служба на основе технологий баз данных SQL Server и оптимизированная для поддержки крупномасштабных рабочих нагрузок хранилищ данных.
  • SQL Spark. Spark SQL представляет собой API на базе Spark, позволяющий создавать блоки данных и таблицы, к которым можно обращаться через запросы с синтаксисом SQL.
  • HBase. Это хранилище NoSQL с малой задержкой, которое позволяет выполнять высокопроизводительные, гибкие запросы к структурированным и частично структурированным данным.
  • Hive. Помимо полезных возможностей для пакетной обработки, Hive предлагает архитектуру базы данных, концептуально похожую на структуру типичной системы управления реляционной базой данных. Благодаря усовершенствованиям производительности запросов Hive за счет таких инноваций, как обработчик Tez и инициатива Stinger, таблицы Hive можно эффективно использовать в качестве источников для аналитических запросов в некоторых сценариях.

Дополнительные сведения см. в статье о хранилище аналитических данных.

Аналитика и отчетность

  • Azure Analysis Services. Многие решения для обработки больших данных имитируют традиционные корпоративные архитектуры бизнес-аналитики, включая централизованную модель данных OLAP (часто называемую кубом), на которой можно основывать отчеты, панели мониторинга и интерактивный анализ «срезы и кости». Службы Azure Analysis Services поддерживают создание табличных моделей для этих целей.
  • Power BI. Power BI позволяет аналитикам данных создавать интерактивные визуализации на основе моделей данных в модели OLAP или непосредственно из хранилища аналитических данных.
  • Microsoft Excel. Это одно из наиболее широко используемых программных приложений в мире, которое предлагает множество возможностей для анализа и визуализации данных. Аналитики данных могут использовать Excel для создания моделей данных документов из хранилищ аналитических данных или для извлечения данных из моделей данных OLAP в интерактивные сводные таблицы и диаграммы.

Оркестрация

  • Фабрика данных Azure. Конвейеры фабрики данных Azure можно использовать для определения последовательности действий, запланированных для повторяющихся временных окон. эти действия могут инициировать операции копирования данных, а также задания Hive, Pig, MapReduce или Spark в кластерах HDInsight по запросу. U-SQL задания в Azure Date Lake Analytics; и хранимые процедуры в Azure синапсе или База данных SQL Azure.
  • Oozie и Sqoop. Oozie — это механизм автоматизации заданий для экосистемы Apache Hadoop. Он может использоваться для инициирования операций копирования данных, а также заданий Hive, Pig и MapReduce для обработки данных и заданий Sqoop для копирования данных между HDFS и базами данных SQL.

Дополнительные сведения см. в статье Choosing a data pipeline orchestration technology in Azure (Выбор технологии оркестрации конвейера данных в Azure).

Источник

Оцените статью
Разные способы