Возможна ли потоковая передача Кафки без CDC? - PullRequest
0 голосов
/ 21 мая 2019

Я работаю над проектом на работе. Мне любопытно, можно ли реализовать Kafka в базе данных без CDC. (CDC не включен все время на нем) Не могу найти какие-либо ресурсы в Интернете, которые обсуждают другие варианты. Можно ли подавать данные прямо в кафку? Например, написать код C # для чтения базы данных, а затем подключиться к Kafka, который действует как соединитель?

Ответы [ 2 ]

2 голосов
/ 21 мая 2019

Наблюдайте за этим, это все объясняет :-)

https://www.confluent.io/kafka-summit-ny19/no-more-silos-integrating-db-into-apache-kafka

tl; dr: Вы могли бы написать некоторый код, но вопросна самом деле должен написать код :) Почти наверняка нет.Вы можете использовать «правильный» CDC для получения событий из журнала транзакций, или вы можете использовать «CDC на основе запросов» с соединителем JDBC Source, чтобы просто опросить новые записи.Плюсы и минусы каждого обсуждаются в приведенном выше разговоре.

1 голос
/ 21 мая 2019

Можно, но не должно . Думая как CDC, как еще одно программное обеспечение, и, конечно, вы можете написать подобное программное обеспечение, как это Есть много хитрых вещей, с которыми вам нужно справиться:

  • Вы должны читать данные из журналов базы данных (binlog в MySQL, oplog в MongoDB ...). Таким образом, вы должны понимать формат журналов каждого поставщика базы данных, который вы хотите экспортировать.
  • Ведение постоянных данных. Допустим, вы пишете в Кафку список данных, которые за одну транзакцию. Что произойдет, когда вы напишите на средних шагах, и что-то случилось не так? Вы должны повторить попытку. В противном случае другая часть вашей системы, считывающая данные из Kafka, увидит частичные данные. ...

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

...