Utiliser des vues matérialisées actualisables
ORDER BY) consiste à utiliser des vues matérialisées actualisables (MV). Elles permettent de recopier périodiquement (par exemple, toutes les 5 ou 10 minutes) l’intégralité de la table avec la clé d’ordonnancement souhaitée.
Vous trouverez ci-dessous un exemple de MV actualisable avec un ORDER BY personnalisé et la déduplication requise :
Clés d’ordonnancement personnalisées sans vues matérialisées actualisables
Choisissez des colonnes de clé d’ordonnancement qui ne changent pas pour une ligne donnée
tenant_id, id) comme clé d’ordonnancement est un bon choix. Ces colonnes identifient chaque ligne de manière unique, et tenant_id reste constant pour un id, même si d’autres colonnes changent. Comme la déduplication par id correspond à la déduplication par (tenant_id, id), cela permet d’éviter des problèmes de déduplication qui pourraient survenir si tenant_id venait à changer.
Définir REPLICA IDENTITY sur les tables Postgres pour une clé d’ordonnancement personnalisée
REPLICA IDENTITY sur les tables afin d’y inclure les colonnes de la clé d’ordonnancement. C’est indispensable pour traiter correctement les DELETE.
Si REPLICA IDENTITY n’inclut pas les colonnes de la clé d’ordonnancement, Postgres CDC ne capturera pas les valeurs des colonnes autres que la clé primaire : il s’agit d’une limitation du logical decoding de Postgres. Toutes les colonnes de la clé d’ordonnancement autres que la clé primaire dans Postgres auront des valeurs NULL. Cela affecte la déduplication : la version précédente de la ligne risque de ne pas être dédupliquée avec la dernière version supprimée (où _peerdb_is_deleted est défini sur 1).
Dans l’exemple ci-dessus avec owneruserid et id, si la clé primaire n’inclut pas déjà owneruserid, vous devez créer un UNIQUE INDEX sur (owneruserid, id) et le définir comme REPLICA IDENTITY pour la table. Cela garantit que Postgres CDC capture les valeurs de colonnes nécessaires pour une réplication et une déduplication précises.
Vous trouverez ci-dessous un exemple montrant comment procéder sur la table events. Veillez à appliquer cette configuration à toutes les tables dont les clés d’ordonnancement ont été modifiées.