через механизм подписки для получения данных из PostgreSQL вместо стандартного варианта через логическое декодирование всего объёма изменений и фильтрации нужных таблиц на стороне коннектора? У меня в OLTP базе очень много изменений (более 15k rps), а получать данные об изменениях нужно всего из одной таблицы, которая меняется очень редко (не более 100 rps).
Да, там есть такая возможность.
спасибо! Полез тогда изучать документацию
Насколько знаю, там только логическое декодирование. Напишите, если найдёте другие варианты
обязательно. Пока информация противоречивая), ^
Да, я тут соврал, там только через логическую репликацию, не сразу понял, что речь идёт и listen/notify.
логическая репликация есть и через create subscription. Там можно на стороне СУБД ограничить репликацию только определенными таблицами чтобы не гнать на коннектор терабайты изменений. Буду ещё изучать...
вроде вот это поможет. Протестирую и дам обратную связь) https://debezium.io/documentation/reference/connectors/postgresql.html#postgresql-property-publication-name
- нужно использовать тип плагина pgoutput - предварительно создать публикацию create publication dbz_publication for table your_single_table with (publish=....) - после этого коннектор корректно слушает заданные типы событий только по данной таблице - если стандартное имя публикации (dbz_publication) не подходит, то через переменную publication.name задать имя публикации, которая описана в СУБД (см. выше)
Обсуждают сегодня