限制和考虑事项
在使用 PostgreSQL 源时,应注意以下限制和注意事项:
所有数据任务的限制和注意事项
- 数据库名称不能包含分号 (;)。
- 不支持在数据库处于热备用模式时捕获更改。
- 具有相同名称但大小写不同(例如 table1、TABLE1 和 Table1)的多个表的 移动 可能会导致不可预测的行为,因此不受支持。
- 仅自 PostgreSQL 16 起支持 PostgreSQL 读取副本(在高可用性环境中)。
- 不支持 TRUNCATE 操作的更改处理。
- 不支持延迟约束。
-
不支持带有 CASE 表达式的唯一索引。
仅登陆任务的限制和注意事项
- 不支持分区表。
- 强制故障转移是 Azure Database for PostgreSQL–Flexible Server 的一项功能。如果来自 Azure Database for PostgreSQL–Flexible Server 的 移动 数据发生强制故障转移,则任务将停止,需要重新创建数据集。
复制和登陆任务的限制和注意事项
-
REPLICA IDENTITY 支持:
-
如果使用 FULL,则会复制所有表格列的前映像值。只有使用此模式才能重新定义目标索引。
-
如果使用 DEFAULT,则仅当表包含主键时才支持复制。此外,将仅复制前映像的主键列。
-
只有当指定的唯一索引是表的唯一约束(即表没有主键或其他唯一索引)时,才支持使用 INDEX。在这种情况下,对它的支持与上述 DEFAULT 值完全相同。
-
由于 Qlik Talend Data Integration 不会验证 REPLICA IDENTITY 值,因此请确保您定义了正确的值。
-
- 不支持“从时间戳开始进程更改”运行选项。
-
支持 [CREATE | ALTER | DROP] 表 DDL 的更改处理,除非它们保存在内部函数/过程体块或其他嵌套结构中。
例如,将不会捕获以下更改:
CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void
LANGUAGE plpgsql
AS $$
BEGIN
create table attu.distributors1(did serial PRIMARY KEY,name varchar(40) NOT NULL);
END;
$$;
- 涉及两个分区(在分区之间移动记录)的 UPDATE 操作将通过 DELETE 和 INSERT 操作复制到目标表格。如果启用了存储更改复制模式,则 UPDATE 将在相应的更改表中显示为单独的 INSERT 和 DELETE 操作。
当捕获对源表的更改时,只有在 RENAME TABLE 操作之前有 DML 操作时,才会捕获 RENAME TABLE 操作。
不支持 PostGIS 数据类型。
强制故障转移是 Azure Database for PostgreSQL–Flexible Server 的一项功能。如果来自 Azure Database for PostgreSQL–Flexible Server 的 移动 数据发生强制故障转移,则任务将停止,需要重新加载数据集。
PostgreSQL 15.x 中引入的 SQL MERGE 命令尚未经过认证。
不受支持的数据类型
不支持以下数据类型:
-
PostGIS
- INT4MULTIRANGE
- INT8MULTIRANGE
- NUMMULTIRANGE
- TSMULTIRANGE