Архитектура: Архитектура потока данных

Архитектура

Введение

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

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

Архитектура потока данных

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

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

последовательное дозирование

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

Давайте посмотрим на блок-схему последовательной пакетной обработки:

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

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

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

Трубы и фильтры

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

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

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

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

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

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

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

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

Контроль процесса

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

Суммировать

Выше мы представили несколько архитектур потоков данных, надеюсь, вам понравится.

Автор статьи: о программе flydean

Ссылка на эту статью:Woohoo. Фрейд пресс .com/07-data-post…

Источник этой статьи: блог flydean

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