Как получить данные из Kafka в магазин без раковины Kafka Connect? - PullRequest
1 голос
/ 23 июня 2019

Когда вы читаете о Kafka и о том, как получить данные из Kafka в запрашиваемую базу данных, подходящую для какой-то конкретной задачи, обычно упоминаются приемники Kafka Connect. enter image description here Это похоже на то, что нужно сделать, если мне понадобится Kafka для поиска в индексировании, например ElasticSearch, или в аналитике, такой как Hadoop, в Spark, где есть приемник Kafka Connect.

Но мой вопрос заключается в том, как лучше всего обращаться с магазином, который не так популярен, скажем, MyImaginaryDB, где единственный способ, которым я могу получить к нему доступ, - это через некоторый API, и данные должны обрабатываться безопасно и надежно, а также прилично трансформируется перед вставкой? Рекомендуется:

  1. Просто используйте API для Kafka и используйте драйвер MyImaginaryDB для записи
  2. Узнайте, как создать собственный приемник Kafka Connect (при условии, что он может обрабатывать схемы, аутентификацию / авторизацию, повторные попытки, отказоустойчивость, преобразования и постобработку, необходимые перед посадкой в ​​MyImaginaryDB)

Я также читал о Kafka KSQL и Streams, и мне интересно, поможет ли это с преобразованием данных перед их отправкой в ​​конечное хранилище.

1 Ответ

1 голос
/ 23 июня 2019

Вариант 2, безусловно.Тот факт, что отсутствует исходный соединитель, не означает, что Kafka Connect не для вас.Если вы собираетесь писать код в любом случае , все равно имеет смысл подключиться к инфраструктуре Kafka Connect.Kafka Connect обрабатывает все обычные вещи (схемы, сериализация, перезапуски, отслеживание смещений, масштабирование, параллелизм и т. Д.) И оставляет вам просто реализовать бит получения данных до MyImaginaryDB.

Что касается преобразований, стандартным шаблоном является:

  • Использовать преобразование одного сообщения для облегченных вещей
  • Используйте Kafka Streams / KSQL и напишите в другую тему, котораязатем направляется через Kafka Connect к целикоторый уже существует (надежная масштабируемая интеграция с внешней системой)

    Этот доклад может оказаться полезным для понимания того, что может сделать Kafka Connect: http://rmoff.dev/ksldn19-kafka-connect

...