Сгенерированные столбцы PostgreSQL: подводные камни и лучшие практики
При использовании сгенерированных столбцов PostgreSQL в таблицах, которые реплицируются, есть несколько важных моментов, которые нужно учитывать. Эти подводные камни могут повлиять на процесс репликации и согласованность данных в ваших целевых системах.
Проблема со сгенерированными столбцами
-
Не публикуются через
pgoutput
: Сгенерированные столбцы не публикуются через плагин логической репликацииpgoutput
. Это значит, что при репликации данных из PostgreSQL в другую систему значения сгенерированных столбцов не входят в поток репликации. -
Проблемы с первичными ключами: Если сгенерированный столбец является частью вашего первичного ключа, это может вызвать проблемы с дедупликацией на целевой стороне. Поскольку значения сгенерированных столбцов не реплицируются, целевая система не будет иметь необходимую информацию для правильной идентификации и дедупликации строк.
Лучшие практики
Чтобы обойти эти ограничения, рассмотрите следующие лучшие практики:
-
Воссоздайте сгенерированные столбцы на целевой стороне: Вместо того чтобы полагаться на процесс репликации для обработки сгенерированных столбцов, рекомендуется воссоздавать эти столбцы на целевой стороне с помощью таких инструментов, как dbt (инструмент построения данных) или других механизмов преобразования данных.
-
Избегайте использования сгенерированных столбцов в первичных ключах: При проектировании таблиц, которые будут реплицироваться, лучше избегать включения сгенерированных столбцов в состав первичного ключа.
Будущие улучшения в интерфейсе
В предстоящих версиях мы планируем добавить интерфейс, который поможет пользователям с следующими задачами:
-
Идентификация таблиц со сгенерированными столбцами: Интерфейс будет включать функцию для идентификации таблиц, содержащих сгенерированные столбцы. Это поможет пользователям понять, какие таблицы затронуты этой проблемой.
-
Документация и лучшие практики: Интерфейс будет включать лучшие практики по использованию сгенерированных столбцов в реплицируемых таблицах, включая рекомендации о том, как избежать распространенных ошибок.