跳到主要内容 跳到补充内容

限制和考虑事项

在使用 PostgreSQL 源时,应注意以下限制和注意事项:

所有数据任务的限制和注意事项

  • 数据库名称不能包含分号 (;)。
  • 不支持在数据库处于热备用模式时捕获更改。
  • 具有相同名称但大小写不同(例如 table1TABLE1Table1)的多个表的 移动 可能会导致不可预测的行为,因此不受支持。
  • 仅自 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

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!