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