Возможна ли потоковая передача Kafka без CDC?

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

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
2
0
388
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Посмотрите, это все объясняет :-)

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

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

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

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

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

Другие вопросы по теме