Гайд: как настроить WAL, чтобы отслеживать изменения в PostgreSQL? Возможно, кто-то из прочитавших заголовок скажет — зачем возиться с WAL, если есть более простые способы. `NOTIFY`, например. Да, действительно, и, если вам нужно мониторить изменения в небольшой, не слишком часто обновляющейся таблице, то это отличный вариант. Но дело в том, что все уведомления `NOTIFY` падают в одну очередь, и если таких уведомлений много, то они затормозят работу всей БД. Кроме того, их размер ограничен 8000 байтов, чего может быть недостаточно. А еще, если сервис-получатель был по какой-то причине не доступен и сообщение не дошло, повторное через NOTIFY не отправляется — то есть данные просто потеряются. В общем, не идеальный вариант. 🔜 Альтернатива — это настроить Write-Ahead Log или WAL, чтобы получать уведомления из него. Спойлер: этот вариант тоже не идеальный. Как минимум, придется повозиться: 🔵Изменить `wal_level` на `logical` со стандартного `replica` — так он начнет делать более подробные записи о том, как и что конкретно изменилось в базе. 🔵Создать `publications` (то есть, расписать, какие таблицы и действия вы хотите отслеживать) и репликационный слот (то есть отдельную копию WAL, которая гарантирует, что никакие важные данные из лога не удалятся, пока уведомление не будет отправлено). 🔵Создать listener, который будет получать уведомления и перенаправлять их дальше — в очередную таблицу, в приложение или мессенджер. Или вообще распечатать. Но если вам нужно настроить отправку уведомлений и другие способы не подходят, это может быть вполне рабочее решение. Как воплотить его в жизнь, по шагам описано в подробном (очень подробном) гайде.
Гайд: как настроить WAL, чтобы отслеживать изменения в PostgreSQL? Возможно,…
Из этого канала
- #1955Строим витрину данных с Claude через MCP MCP — model context protocol, который…
Строим витрину данных с Claude через MCP MCP — model context protocol, который выступает связующим звеном между ИИ и ИТ-инфраструктурой пользователя.
- #1956GitHub меняет ценовую политику Сначала краткая справка: раннеры — это…
GitHub меняет ценовую политику Сначала краткая справка: раннеры — это виртуальные машины, которые выполняют заданную последовательность действий: запускают…
- #1957Давно у нас пятничных мемов не было. Возвращаем традицию? 👀
Давно у нас пятничных мемов не было. Возвращаем традицию? 👀
- #1953Интернет опять против ИИ-рекламы? Прохладная реакция на новогодний ИИ-ролик от…
Интернет опять против ИИ-рекламы? Прохладная реакция на новогодний ИИ-ролик от Coca-Cola (уже второй год подряд, кстати) корпорации ничему не научила.
- #1952Какие работы на самом деле отнял ИИ? Как-то раз мы уже писали про…
Какие работы на самом деле отнял ИИ? Как-то раз мы уже писали про исследование, которое показало, что из-за развития ИИ компании стали реже нанимать джунов.