1

我的工作负载具有大量架构更改和其他锁定的 ETL 操作。

在对我的主表进行架构更改之前,我想先将现有内容从主表复制到临时表,然后执行架构更改,然后同步所有新更改,一旦“时间正确”(截止时间? ),进行切换并使临时表成为主表。

我知道我可以在 postgres 中使用 Triggers 在两个表之间同步数据,也可以COPY用于将数据从一个表复制到另一个表。

但我不确定如何先复制现有数据,然后发出触发器以确保没有数据丢失。然后也进行切断,以便新表是主要的。

我在想的是——

  • COPY我从主表 (TableA) 向临时表 TableB发出一个表。
  • 然后我执行架构更改TableB
  • 然后我设置TriggerTableATableB插入/更新/删除
  • ...现在我不确定如何切断 TableB 变成 TableA。我可以使用 RENAME 吗?

感觉我可以在第 1 步和第 2 步之间遇到一些丢失的变化?

基本上我试图确保三个高级操作之间没有数据。有一个更好的方法吗?

4

0 回答 0