#system #design #lambda_architecture #big #data
Lambda Architecture (LA) - способ обработки больших данных используя распределенные системы, когда вам нужно, скажем, проиндексировать ваши данные тем или иным способом. Например, посчитать какой из документов у вас более просматриваемый.
На огромном датасете в несколько терабайт ежедневно обычный алгоритм вам точно не подойет. Используя Ламбда Архитектуру можно удовлетворить необходимость запрашивать у системы самые просматриваемые документы (скажем видео на ютуб) в разрезе последних 5 минут или нескольких дней/месяцев.
У каждого способа есть свои плюсы и минусы в точности и скорости, но мы всегда можем их объеденить.
Для этого мы отправляем данные для обработки двумя параллельными процессам: быстрый/speed layer (неточный) и комплексный/batch layer (точнее).
Speed layer работает с данными за короткий период (скажем минута, 5 минут), в то время как, Batch Layer обрабатывает большее количество данных сагрегированных за более длительный период (скажем за час).
Когда клиент дергает данные, то сервис (serving layer) объединяет результат работы обоих процессов.
Почитать можно, например, тут:
https://jameskinley.tumblr.com/post/37398560534/the-lambda-architecture-principles-for
с указанием возможных технологий для релизации
В этом видео автор блестяще раскрывает как, используя эту архитектуру, можно решить поставленную задачу:
https://www.youtube.com/watch?v=kx-XDoPjoHw
Lambda Architecture (LA) - способ обработки больших данных используя распределенные системы, когда вам нужно, скажем, проиндексировать ваши данные тем или иным способом. Например, посчитать какой из документов у вас более просматриваемый.
На огромном датасете в несколько терабайт ежедневно обычный алгоритм вам точно не подойет. Используя Ламбда Архитектуру можно удовлетворить необходимость запрашивать у системы самые просматриваемые документы (скажем видео на ютуб) в разрезе последних 5 минут или нескольких дней/месяцев.
У каждого способа есть свои плюсы и минусы в точности и скорости, но мы всегда можем их объеденить.
Для этого мы отправляем данные для обработки двумя параллельными процессам: быстрый/speed layer (неточный) и комплексный/batch layer (точнее).
Speed layer работает с данными за короткий период (скажем минута, 5 минут), в то время как, Batch Layer обрабатывает большее количество данных сагрегированных за более длительный период (скажем за час).
Когда клиент дергает данные, то сервис (serving layer) объединяет результат работы обоих процессов.
Почитать можно, например, тут:
https://jameskinley.tumblr.com/post/37398560534/the-lambda-architecture-principles-for
с указанием возможных технологий для релизации
В этом видео автор блестяще раскрывает как, используя эту архитектуру, можно решить поставленную задачу:
https://www.youtube.com/watch?v=kx-XDoPjoHw
#algorithms #data #structures #video
Нашел неплохой канал с видео по структурам данных: https://www.youtube.com/c/WilliamFiset-videos/videos
Нашел неплохой канал с видео по структурам данных: https://www.youtube.com/c/WilliamFiset-videos/videos