非分区表变为分区表_PostgreSQL 13新特性之二: 支持异构分区表逻辑复制。

本文介绍了PostgreSQL 13版本中新增的对分区表逻辑复制的支持,特别是异构分区表的数据同步。通过`publish_via_partition_root`选项,可以实现分区表数据复制到普通表或不同分区策略的目标分区表。文中详细阐述了两种场景的验证过程:1. 分区表数据逻辑复制到普通表;2. 分区表数据逻辑复制到按年分区的异构表,并展示了操作步骤和结果。
摘要由CSDN通过智能技术生成

作者简介

谭峰,网名francs,PostgreSQL中文社区委员,《PostgreSQL实战》作者之一,《PostgreSQL 9 Administration Cookbook》译者之一,致力于PostgreSQL技术分享,博客 https://postgres.fun,三墩IT人。

背景

PostgreSQL 13 的逻辑复制新增了对分区表的支持,使得分区表也能够进行逻辑复制。

 实现方式: PostgreSQL 13 版本CREATE SUBSCRIPTION命令新增 publish_via_partition_root 选项支持异构分区表的数据同步,具体为:

1、分区表数据逻辑复制到普通表。

2、分区表数据逻辑复制到异构分区表。

第2点所说的异构分区表是指目标库和源库同一张分区表的分区策略可以不一样,比如源库分区表的分区策略是按月分区,目标库分区表的分区策略可以是按年分区。

这一功能对于分区表具有重要意义,当需要从多个源库汇总数据到同一个目标库的分区表时,目标库的分区策略可以设置成和源库不一致,便于数据汇总统计。

关于publish_via_partition_root (boolean)

手册中关于 publish_via_partition_root 选项的说明,如下:

This parameter determines whether changes in a partitioned table (or on its partitions) contained in the publication will be published using the identity and schema of the partitioned table rather than that of the individual partitions that are actually changed; the latter is the default. Enabling this allows the changes to be replicated into a non-partitioned table or a partitioned table consisting of a different set of partitions.

If this is enabled, TRUNCATE operations performed directly on partitions are not replicated.

关于 publish_via_partition_root 选项,如下:

1、该选项设置发布中包含的分区表中的更改(或分区上的更改)是否使用分区表父表的标识和模式发布,而不是使用各个分区的标识和模式发布。

2、默认使用分区进行标识和模式发布。

3、设置为true,可以将分区表的数据逻辑复制到普通表和异构分区表。

4、如果设置为true,分区上的 `TRUNCATE` 操作不会进行逻辑复制。

本文对分区表在上述两种场景下的逻辑复制进行验证,如下:

场景一: 分区表数据逻辑复制到普通表。

场景二: 分区表数据逻辑复制到异构分区表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值