雪花故障转移——复制机制

Snowflake failover - replication mechanim

我一直在深入研究有关如何在 Snowflake 中管理 failover/replication 用例的文档。 here 基本上,故障转移策略是基于数据库在位于不同区域的同一组织的两个不同帐户之间的复制特性。

从复制的角度来看,我可以配置这两个数据库并在每 10 分钟刷新一次主数据库的任务中设置我的复制,并以这种方式尽量保持辅助数据库的更新。尽管如此,如果发生意外事件,我的辅助数据库将被提升为主要数据库,将具有基于上次完成更新的数据版本,这意味着我可能已经部分丢失了在更新之前执行的整个新 data/transformations停电。这让我想到:

非常感谢

a) 为了减少数据丢失,一种策略是如您所指出的那样频繁安排复制操作。另一个是能够在故障转移后重播最近的 ETL 作业。为此,您需要确保源数据可用,并且 ETL 过程可以在灾难后恢复。并且该 ETL 可以以幂等方式重放。

b) 不支持合并更改/冲突解决。 Snowflake 的数据库复制遵循单主模型。刷新辅助数据库会用主数据库的当前状态覆盖它。建议按照 (a) 中的建议通过重放 ETL 来恢复主节点上丢失的数据。