我有一个ETL进程,它从事务db获取数据并在处理后保留将数据存储到另一个DB。在存储数据的同时,我们正在截断旧数据并存储新数据以获得更好的性能,因为更新比截断插入花费了大量时间。所以在这个过程中,我们经历了一段时间内的0或错误数据(例如2 3分钟)。我们每8个小时运行一次ETL。
那么我们怎样才能避免这个问题呢?我们怎样才能实现零停机?
答案 0 :(得分:0)
我们过去使用的一种方法是在名为temp的表中准备prod数据。然后,当完成(并检查,这是我们的过程中的冗长部分)时,删除prod并重命名生成中的temp。
几乎没有时间,即使其他一些用户锁定了表,该过程也是成功的。