Skip to content

Агрегация данных

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

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

Если количество агрегируемых потоков данных очень мало, например, 2-3,, мы можем использовать select блок для агрегирования этих потоков данных.

Раздел данных

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

Состав данных

Обработчик компоновки данных объединяет несколько фрагментов данных из разных потоков входных данных в один фрагмент данных.

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

Декомпозиция данных

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

Дублирование/распространение данных

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

Пример.

Расчет/анализ данных

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

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