我的工作负载具有大量架构更改和其他锁定的 ETL 操作。
在对我的主表进行架构更改之前,我想先将现有内容从主表复制到临时表,然后执行架构更改,然后同步所有新更改,一旦“时间正确”(截止时间? ),进行切换并使临时表成为主表。
我知道我可以在 postgres 中使用 Triggers 在两个表之间同步数据,也可以COPY
用于将数据从一个表复制到另一个表。
但我不确定如何先复制现有数据,然后发出触发器以确保没有数据丢失。然后也进行切断,以便新表是主要的。
我在想的是——
COPY
我从主表 (TableA) 向临时表 TableB发出一个表。- 然后我执行架构更改
TableB
- 然后我设置
Trigger
从TableA
到TableB
插入/更新/删除 - ...现在我不确定如何切断 TableB 变成 TableA。我可以使用 RENAME 吗?
感觉我可以在第 1 步和第 2 步之间遇到一些丢失的变化?
基本上我试图确保三个高级操作之间没有数据。有一个更好的方法吗?