У меня есть хранилище данных на сервере Microsoft SQL и много сложных запросов, включающих множество соединений между таблицами. Каждый запрос возвращает мне структуру, которая затем будет использоваться для заполнения объекта в моей базе данных mongodb.
Запросы могут изменяться и включать новые таблицы, поэтому моя стратегия будет следующей:
- Я бы создал несколько материализованных представлений (конечно, Microsoft делает вещи по своему вкусу, поэтому кажется, что этих представлений не существует, но они отображаются как обычные представления + индекс, интересно, это то же самое?).
- Я бы установил правильный период обновления для представления
- Кафка тогда будет слушать события с этими взглядами
Я не уверен в этом подходе, потому что я не знаю, как и если эта база данных будет создавать журналы событий и для материализованных представлений, и не будет ли Кафка интерпретировать их как изменения в таблицах.
Альтернативой может быть прослушивание событий в каждой отдельной таблице, но, как я уже говорил, их много и они могут измениться, поэтому потребуется много обслуживания.
Что вы думаете?