www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home
Занимательная история, выдающиеся люди, малоизвестные факты, находки, открытия, фальсификации. Присоединяйся!

Краткое введение в две архитектуры обработки данных - Lambda и Kappa для больших данных

Дата публикации Mar 15, 2018

Большие данные, Интернет вещей (IoT), модели машинного обучения и различные другие современные системы становятся сегодня неизбежной реальностью. Люди из всех слоев общества начали взаимодействовать с хранилищами данных и серверами в рамках своей повседневной жизни. Поэтому мы можем сказать, что работа с большими данными наилучшим образом становится основной областью интереса для бизнеса, ученых и частных лиц. Например, приложение, запущенное для достижения определенных бизнес-целей, будет более успешным, если оно сможет эффективно обрабатывать запросы клиентов и хорошо выполнять свои задачи. Такие приложения должны взаимодействовать с хранилищем данных, и в этой статье мы попытаемся изучить две важные архитектуры обработки данных, которые служат основой различных корпоративных приложений, известных как Lambda и Kappa.

Быстрый рост приложений для социальных сетей, облачных систем, Интернета вещей и бесконечного множества инноваций сделал важным для разработчика или ученого принимать взвешенные решения при запуске, обновлении или устранении неполадок корпоративного приложения. Несмотря на широкое признание и понимание того, что использование модульного подхода для создания приложения имеет множество преимуществ и долгосрочных преимуществ, стремление к выбору правильной архитектуры обработки данных по-прежнему ставит вопросительные знаки перед многими предложениями, касающимися существующих и будущих предприятий. програмное обеспечение. Хотя в настоящее время в мире используются различные архитектуры обработки данных, давайте подробно рассмотрим архитектуры Lambda и Kappa и выясним, что делает каждую из них особенной и при каких обстоятельствах следует отдавать предпочтение одной из них.

Лямбда-архитектура

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

Источник событий - это концепция использования событий для прогнозирования, а также сохранения изменений в системе в режиме реального времени. Изменение состояния системы, обновление баз данных или событие можно понимать как изменение. Например, если кто-то взаимодействует с веб-страницей или профилем в социальной сети, такие события, как просмотр страницы, лайки или запрос «Добавить в друзья» и т. Д.… Запускают события, которые можно обрабатывать или обогащать, и данные сохраняются в базе данных.

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

1. Пакетный слой

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

2. Слой скорости (Stream Layer)

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

3 Обслуживающий слой

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

Вот базовая схема того, как должна выглядеть модель Lambda Architecture:

Лямбда-архитектура

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

Query = λ (Complete data) = λ (live streaming data) * λ (Stored data)

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

Приложения лямбда-архитектуры

Лямбда-архитектура может быть развернута для тех корпоративных моделей обработки данных, где:

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

Лямбда-архитектура может рассматриваться как архитектура обработки данных, близкая к реальному времени. Как упоминалось выше, он может противостоять сбоям, а также обеспечивает масштабируемость. Он использует функции пакетного уровня и потокового уровня и продолжает добавлять новые данные в основное хранилище, обеспечивая при этом сохранность существующих данных. Такие компании, как Twitter, Netflix и Yahoo, используют эту архитектуру для соответствия стандартам качества обслуживания.

Плюсы и минусы лямбда-архитектуры

Pros

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

Cons

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

Каппа Архитектура

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

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

Каппа Архитектура

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

Query = K (New Data) = K (Live streaming data)

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

Приложения архитектуры Kappa

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

Архитектура Kappa может быть развернута для тех корпоративных моделей обработки данных, где:

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

Вышеупомянутые сценарии данных обрабатываются исчерпывающим Apache Kafka, который является чрезвычайно быстрым, отказоустойчивым и горизонтально масштабируемым. Это позволяет улучшить механизм управления потоками данных. Сбалансированное управление потоковыми процессорами и базами данных позволяет приложениям работать в соответствии с ожиданиями Кафка сохраняет упорядоченные данные в течение более продолжительного времени и обслуживает аналогичные запросы, связывая их с соответствующей позицией сохраненного журнала. LinkedIn и некоторые другие приложения используют эту разновидность обработки больших данных и получают выгоду от сохранения большого объема данных для обслуживания тех запросов, которые являются простой копией друг друга.

Плюсы и минусы каппской архитектуры

Pros

  • Архитектура Kappa может быть использована для разработки систем данных, которые обучаются в режиме онлайн и поэтому не нуждаются в пакетном уровне.
  • Повторная обработка требуется только при изменении кода.
  • Это может быть развернуто с фиксированной памятью.
  • Может использоваться для горизонтально масштабируемых систем.
  • Требуется меньше ресурсов, так как машинное обучение осуществляется в режиме реального времени.

Cons

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

Вывод

Короче говоря, выбор между архитектурами Lambda и Kappa кажется компромиссом. Если вы ищете архитектуру, которая более надежна в обновлении озера данных, а также эффективна в разработке моделей машинного обучения для надежного прогнозирования наступающих событий, вам следует использовать архитектуру Lambda, поскольку она использует преимущества пакетного уровня и Скорость слоя, чтобы обеспечить меньше ошибок и скорости. С другой стороны, если вы хотите развернуть архитектуру больших данных с использованием менее дорогого оборудования и требовать от нее эффективной обработки на основе уникальных событий, происходящих во время выполнения, выберите архитектуру Kappa для своих нужд обработки данных в реальном времени.

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map