Teja Mupparti:Citus 12.0 如何支持 PostgreSQL 的 MERGE 命令
原文英文,约2800词,阅读约需11分钟。发表于: 。Postgres community released a new feature, in Postgres 15.0, that performs actions to modify rows in the target table, using the data from a source. MERGE provides a single SQL statement that can...
Postgres 15.0发布了MERGE功能,可以使用源数据对目标表进行修改操作。MERGE提供了条件插入、更新和删除行的单一SQL语句,替代了多个过程语言语句。Citus在分布式环境中采用不同策略处理MERGE,适用于数据同步、去重、日志记录、实时数据更新和批量操作。MERGE命令执行左外连接,根据匹配或不匹配的状态对每一行进行操作。Citus使用灵活的重新分区策略处理复杂情况,并将输出重新分区以匹配目标表。然而,MERGE命令在分布式表上有两个限制,必须包括目标表的分布键,并且在NOT MATCHED...INSERT()操作中,提供的值必须是源查询的连接子句。目前还不能将MERGE用于引用表,也不能将其用于列存储表。子查询和CTE只能在源部分使用。