创建自定义的postgresql slave

Create a customized slave of postgresql

我需要为 BI 创建一个从站,我需要修改一些表(例如,删除所有密码或敏感数据)。我的数据库是 PostgreSQL。我想知道我是否可以在数据库层执行此操作,或者我应该通过编写代码来进行复制来以编程方式执行此操作。

您可以使用逻辑复制并启用副本触发器(仅在复制时触发)在应用时修改数据:

ALTER TABLE mytab DISABLE TRIGGER mytrig;
ALTER TABLE mytab ENABLE REPLICA TRIGGER mytrig;

您必须确保这些修改不会引起复制冲突。例如,永远不要修改键列。

复制冲突会停止复制并破坏您的系统。

解决这个问题的传统方法是使用ETL过程。这样您就可以在目标数据库上拥有不同的数据模型,例如 pre-aggregate 数据,这样数据仓库就不会变得太大,并且具有针对分析查询优化的数据模型。