Кафка Коннект и Потоки - PullRequest
       14

Кафка Коннект и Потоки

0 голосов
/ 05 октября 2018

Так что я совсем недавно начал читать о Kafka, и меня немного смущает разница между Kafka Connect и Kafka Streams.Согласно определению Kafka Streams может собирать данные из темы Kafka, обрабатывать их и передавать вывод в другую тему Kafka.В то время как Kafka Connect перемещает большие наборы данных в и из Кафки.

Мой вопрос: зачем нам нужен Kafka Connect, который может в значительной степени читать данные, обрабатывать их и передавать в тему?Почему один дополнительный компонент?Будет здорово, если кто-нибудь сможет объяснить разницу Спасибо заранее))

Ответы [ 3 ]

0 голосов
/ 05 октября 2018

Kafka Connect не должен использоваться для расширенной фильтрации и больших преобразований данных, чем выбранные поля.В Kafka Summit обсуждается, когда не следует использовать простые преобразования сообщений (SMT)

. Потоки Kafka могут быть встроены в любое приложение Java, которое будет использоваться в качестве типа хранилища KV в памяти для приложений.Например, можно написать веб-приложение и использовать KTable в качестве базы данных, которая поддерживается Kafka.В противном случае, это просто библиотека более высокого уровня, чем производитель и потребитель, но она ограничена работой только с одним кластером данных Kafka.KSQL - это дополнительный уровень поверх этого.

С другой стороны, Kafka Connect (хотя, возможно, он может быть встроен; см. Режим встраивания Debezium), предназначен для более «автономной работы» - если существует соединитель, то все, что вам нужно, это файлы конфигурации, а не записьлюбой код самостоятельно

0 голосов
/ 26 октября 2018

Kafka connect: поскольку Kafka выступает в качестве концентратора данных (стандарт), kafka должен подключаться ко всем источникам данных в мире и импортировать данные.И все они имеют одинаковое поведение, поэтому, если у нас есть общая структура и стандарт для этой цели.Это будет очень полезно и чисто.Вот почему Kafka Connect здесь.Это просто мост.Преобразование данных здесь не произойдет.Потому что это не для этой цели.

Kafka Streams: Это специально сделано для преобразования данных.Таким образом, все библиотеки, связанные с вычислениями, будут доступны здесь.

0 голосов
/ 05 октября 2018

Kafka Streams - библиотека потоковой обработки для Apache Kafka .Таким образом, вы можете создавать потоковые приложения, читать / записывать данные из / в темы Kafka.Это библиотека общего назначения.

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

Существует множество соединителей для различных систем хранения данных: HDFS, реляционных баз данных, ElasticSearch и т. Д.

Один из возможных сценариев использованияоба компонента (Kafka Connect, Kafka Streams) будут, например:

Постоянно импортировать данные в тему Kafka из реляционной базы данных.Обработайте эти данные с помощью приложения Kafka Streams, которое записывает результаты в какую-то тему вывода.Экспорт данных из этой темы вывода в ElasticSearch с помощью Kafka Connect.

[1] Этот пост в блоге представляет собой хороший обзор обеих технологий, играющих вместе: https://www.confluent.io/blog/hello-world-kafka-connect-kafka-streams/

...