Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Рекомендации на потоке

E-ContentaАлгоритмыBig Data
Всем привет!

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


Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Просмотры11.8K
Комментарии 12

В разрезе: новостной агрегатор на Android с бэкендом. Распределённые системы обработки сообщений (Spark, Storm)

МессенджерыBig Data
Вводная часть (со ссылками на все статьи)

image

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

Когда анализировалось будущее использование системы, обрабатывающей запросы или входящие данные, были выделены следующие требования:

  • Низкая задержка (latency) обработки сообщения;
  • Возможность получения данных из разных источников (БД, message middleware);
  • Возможность обработки данных на нескольких узлах;
  • Отказоустойчивость к ситуациям выхода из строя узлов;
  • Поддержка уровня гарантированной обработки сообщения «at-least-once»;
  • Наличие интерфейса для мониторинга состояния кластера и для управления им (хотя бы частично).

В качестве итогового решения был выбран фреймворк Apache Storm. Для поклонников Apache Spark: с учётом широкой распространённости этого фреймворка (с использованием Spark Streaming или сейчас Spark Structured Streaming), всё дальнейшее повествование будет строиться в сравнении с функционалом Apache Spark.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры3.2K
Комментарии 0

О стримах и таблицах в Kafka и Stream Processing, часть 1

КонтурПрограммированиеJavaScalaBig Data
Перевод
* Michael G. Noll — активный контрибьютор в Open Source проекты, в том числе в Apache Kafka и Apache Storm.

Статья будет полезна в первую очередь тем, кто только знакомится с Apache Kafka и/или потоковой обработкой [Stream Processing].


В этой статье, возможно, в первой из мини-серии, я хочу объяснить концепции Стримов [Streams] и Таблиц [Tables] в потоковой обработке и, в частности, в Apache Kafka. Надеюсь, у вас появится лучшее теоретическое представление и идеи, которые помогут вам решать ваши текущие и будущие задачи лучше и/или быстрее.

Содержание:

* Мотивация
* Стримы и Таблицы простым языком
* Иллюстрированные примеры
* Стримы и Таблицы в Kafka простым языком
* Пристальный взгляд на Kafka Streams, KSQL и аналоги в Scala
* Таблицы стоят на плечах гигантов (на стримах)
* Turning the Database Inside-Out
* Заключение
Читать дальше →
Всего голосов 19: ↑19 и ↓0 +19
Просмотры41.3K
Комментарии 4

Continuous integration в Яндексе. Часть 2

ЯндексРазработка веб-сайтовРазработка мобильных приложенийIT-инфраструктураРазработка под Windows

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


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


image


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

Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Просмотры10.5K
Комментарии 3

Delta: Платформа синхронизации данных и обогащения

OTUSBig DataData Engineering
Перевод
В преддверии запуска нового потока по курсу «Data Engineer» подготовили перевод интересного материала.






Обзор


Мы поговорим о достаточно популярном паттерне, с помощью которого приложения используют несколько хранилищ данных, где каждое хранилище используется под свои цели, например, для хранения канонической формы данных (MySQL и т.д.), обеспечения расширенных возможностей поиска (ElasticSearch и т.д.), кэширования (Memcached и т.д.) и других. Обычно при использовании нескольких хранилищ данных одно из них работает как основное хранилище, а другие как производные хранилища. Единственная проблема заключается в том, как синхронизировать эти хранилища данных.

Мы рассмотрели ряд различных паттернов, которые пытались решить проблему синхронизации нескольких хранилищ, таких как двойная запись, распределенные транзакции и т.д. Однако эти подходы имеют существенные ограничения в плане использования в реальной жизни, надежности и технического обслуживания. Помимо синхронизации данных, некоторым приложениям также необходимо обогащать данные, вызывая внешние сервисы.
Читать дальше →
Всего голосов 12: ↑10 и ↓2 +8
Просмотры2K
Комментарии 0

Обеспечение высокой доступности приложений с Kafka Streams

Высокая производительностьПрограммированиеJavaBig Data
Перевод
Kafka Streams — это Java-библиотека для анализа и обработки данных, хранящихся в Apache Kafka. Как и в любой другой платформе потоковой обработки, она способна выполнять обработку данных с сохранением и/или без сохранения состояния в режиме реального времени. В этом посте я попытаюсь описать, почему достижение высокой доступности (99,99%) проблематично в Kafka Streams и что мы можем сделать для того, чтобы ее достичь.

Что нам нужно знать


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

Kafka: Партицирование данных


В мире Kafka приложения-продьюсеры отправляют данные в виде пар ключ-значение в определенный топик. Сам топик разделен на один или несколько партиций в Kafka брокерах. Kafka использует ключ сообщения, чтобы указать, в какую партицию следует записывать данные. Следовательно, сообщения с одинаковым ключом всегда оказываются в одной партиции.
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры6.1K
Комментарии 0

Как создать приложение для потоковой обработки данных при помощи Apache Flink

Издательский дом «Питер»ПрограммированиеJavaApache
Перевод
Привет, Хабр!

Среди рассматриваемых нами фреймворков для сложной обработки данных на Java есть и Apache Flink. Хотим предложить вам перевод неплохой статьи из блога Analytics Vidhya на портале Medium, чтобы оценить читательский интерес. Не стесняйтесь участвовать в голосовании!


Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры4.4K
Комментарии 5

Аналитика событий на опасном производстве, или зачем «Цифровому рабочему» Kafka, Esper и ClickHouse

КРОКПрограммированиеАнализ и проектирование системIT-инфраструктураНосимая электроника

Привет, Хабр! Я Алексей Коняев. Последние пару лет участвую в развитии платформы «Цифровой рабочий» в роли ведущего java-разработчика.

Представьте, что вы приехали на экскурсию на завод. Там огромная территория, и вы вместе с гидом передвигаетесь на машине. Он рассказывает: «Посмотрите направо, здесь новое здание литейного цеха, а вот слева старое здание, которое скоро должны снести...» Как вдруг через минуту это старое здание взрывают! Гид, конечно, в шоке, да и вы тоже, но, к счастью, всё обошлось. Спрашивается, какого черта машина с экскурсантами оказалась в месте проведения взрывных работ?! И наш «Цифровой рабочий» на этот вопрос тоже не ответит, но он поможет вовремя предупредить всех заинтересованных лиц о том, что в геозоне, где сейчас проводятся опасные работы, появились посторонние в машине местного гида.

Если в двух словах, то система позволяет предупреждать опасные ситуации на производстве благодаря носимым устройствам Outdoor/Indoor-навигации  и  видеоаналитике. «Цифровой рабочий» может определять местоположение, физическое состояние или опасное поведение людей,  строить различную аналитику, в том числе realtime, и выполнять «разбор полётов», т.е. воспроизводить историю событий, чтобы можно было выяснить, что привело к нежелательной ситуации.

Дальше расскажу про архитектуру нашей системы, как мы используем Kafka, Esper и Clickhouse и на какие грабли уже наступили.

Читать далее
Всего голосов 22: ↑22 и ↓0 +22
Просмотры3.6K
Комментарии 2