14.09.2022

Оптимизируем вычислительные ресурсы с помощью платформы Kafka

Сергей Кравченко, Старший аналитик данных, Beltel Datanomics

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

Kafka хранит все сообщения, получаемые от источников, в плоских файлах в распреде­ленной файловой системе. Каждое сообщение имеет параметр, называемый временем жизни (time to live, TTL), которое обычно составляет семь дней. По ис­течении этого срока сообщения удаляются. Kafka систематизирует свои данные по топикам, напоминающим очереди сообщений, необходимых одному или множеству потребителей, а также использует разделы для хранения тем.

Источники и приемники. Принципы взаимодействия

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

В Kafka реализовано несколько API, с помощью которых можно отправлять, обрабатывать, перенаправлять и потреблять данные:

  • Connect API связывает Kafka с внешними система­ми-источниками и базами данных. Существует множество готовых коннекторов для популярных БД, они выполняют преобразование формата данных и просты в настройке
  • Producer API и Consumer API. Альтернативный вариант к Connect API . Эта форма связи обычно требует дополнитель­ных функций обработки или кода. Поставщик или производитель событий использует Producer API, а потребитель событий — Consumer API
  • Streams API позволяет взаимодействовать и управлять потоками данных внутри Kafka, который может использоваться как производителем, так и потребителем. Производитель может управлять или преобразовывать поток событий

Какие задачи решает платформа Kafka

С помощью Apache Kafka можно построить масштабируемую и отказоустойчивую потоко­вую платформу, предлагающую большое количество возможностей, позволяющую создавать распределенные приложения, которая обеспечивает:

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

Заключение

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

Дополнительно

Пример построения гибридных систем с выносом аналитики в облако (datanomics.ru)

Построение аналитической платформы в облаке Yandex Cloud (datanomics.ru)

С чего начинать внедрение ИИ проекта (datanomics.ru)

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

    Заполняя форму, Вы соглашаетесь с правилами обработки персональных данных.

    Мы используем файлы cookies, чтобы получать статистику и делать наш сайт и другие сервисы удобными для вас. Продолжая дальнейшее использование сайта и/или его сервисов, вы соглашаетесь с этим. Более подробную информацию можно прочитать в «Политика обработки персональных данных» и в «Политика Cookies»