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

Шаблон Map Reducer — это популярный шаблон проектирования, используемый в разработке программного обеспечения для быстрой и эффективной обработки больших объемов данных. Разбивая большой набор данных на более мелкие, более управляемые фрагменты, шаблон Map Reducer может значительно сократить время обработки и повысить производительность.

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

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

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

Фаза I: Фаза карты

Учитывая ввод данных пользователем, первым шагом является вызов всех API-интерфейсов для запроса лучших доступных рейсов. Поскольку в API используется разное моделирование, мы должны создать стандартный класс Flight с нашей собственной структурой (даты, отправитель, пункт назначения, цена и тип места). Второй шаг — повторение вывода каждого ответа API и создание объектов Flight.

После того, как у нас есть набор объектов Flight, мы должны выбрать среди них лучшие.

Фаза II: Уменьшить фазу

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

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

Карта Уменьшить Шаблон

В приведенном выше примере мы использовали популярный шаблон Map-Reduce. Он в основном используется для обработки больших объемов данных распределенным и параллельным образом.

Впервые он был представлен Google в 2004 году и с тех пор получил широкое распространение в сфере больших данных.

Шаблон MapReduce включает два основных этапа: Map и Reduce. На этапе карты входные данные делятся на фрагменты и обрабатываются параллельно несколькими узлами в кластере. Каждый узел применяет функцию отображения к входным данным, создавая стандартный набор объектов.

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

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

Если вы не знали об этом шаблоне, вы, вероятно, использовали его раньше, не зная его названия.

Заключение

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