SYNCED_TABLE_USER_ERROR错误条件

SQLSTATE:42000

同步表管道用户错误。

加速同步数据过大

同步表 <tableName> 有太多大列值,无法使用加速同步。

对于新建的同步表,在通过用户界面创建时禁用加速同步。

如需现有的同步表,请联系 Azure Databricks 支持。

ACTIVE_ENDPOINTS_LIMIT

实例: <instance>. 数据库项目已超过其同时激活端点的限制,因此同步表流水线无法连接。 详细信息:<detail>

要解决这个问题,可以减少同时激活端点的数量,或者提高项目的上限。

活动时间配额已超出

实例: <instance>. 数据库项目已超过其活跃时间配额,因此同步表流水线无法连接。 详细信息:<detail>

为解决这个问题,增加项目的活跃时间配额。

BRANCH_COMPUTE_TIME_EXCEEDED

实例: <instance>. 数据库分支已超出其计算时限,因此同步表管道无法连接到该数据库分支。 详细信息:<detail>

为解决此问题,请增加该分支可用的计算时间。

更改主键

同步表 <destTableUcName> 的主键列已被更改。

指定的主键列:(<primaryKeyColumns>)。 当前主键列:(<existingPrimaryKeyColumns>)。

不支持在创建同步表后更改同步表的主键列。

若要解决此问题,请将同步表修改回原始主键列,或创建新的同步表并删除现有表。

变更主键列类型

同步表<modifiedPkColumns>上已更改主键列<destTableUcName>的数据类型。

创建主键列后,同步表不支持更改主键列的数据类型。

若要解决此问题,请创建新的同步表并删除现有表。

字符不在字符集内

实例: <instance>. 在源 Delta 表中找到无效的字节序列。

细节:<detail>

这通常表示源 Delta 表中包含的字符不符合要求。

与目标数据库的编码兼容。 一种解决方法是转换

选择要使用的源表 BINARY TYPE,然后创建一个新的同步表。

列类型更改不支持 (COLUMN_TYPE_CHANGE_NOT_SUPPORTED)

实例: <instance>. 目前不支持更改列类型。

源 Delta 表: <srcTableName>. 目标同步表: <destTableName>.

列: <columnName>. 现有类型: <existingType>. 新类型: <newType>.

若要解决此问题,请考虑以下选项之一:

  1. 对现有同步表执行完全刷新。

  2. 创建一个新的同步表(将同步新的类型)

COMPUTE_TIME_QUOTA_EXCEEDED

实例: <instance>. 数据库账户或项目已超过其计算时间配额,因此同步表流水线无法连接。 详细信息:<detail>

要解决这个问题,可以增加你的账户或项目的计算时间配额。

连接错误

实例: <instance>. 连接错误。 详细信息:<detail>

若要解决此问题,请确保数据库实例正在运行,而不是暂停或停止。

重启管道以重试。

数据库不存在 (DATABASE_DOES_NOT_EXIST)

目标数据库 <databaseName> 不存在于 lakebase 实例 <instance>中。 请验证目标数据库是否存在。

数据库角色不存在

实例: <instance>. 同步表流水线依赖的Postgres角色 <roleName> 不存在。 详细信息:<detail>

这通常发生在角色从数据库实例中删除时,例如身份从工作区移除后。

要解决这个问题,可以在数据库实例上重新创建 Postgres 角色 <roleName> ,或者丢弃并用仍然存在的身份来创建同步表。

数据传输配额已超出

实例: <instance>. 数据库项目已超过其数据传输配额,因此同步表流水线无法连接。 详细信息:<detail>

为了解决这个问题,提高项目的数据传输配额。

截断的增量事务日志

详细信息:<detail>

这表示 Delta 表的事务日志由于手动删除或日志保留策略已被截断。

若要解决此问题,请对同步表执行完全刷新。

仍然存在依赖对象

实例: <instance>. 由于现有的限制条件,无法删除列。

PostgreSQL 对象仍然在引用该列。 详细信息:<detail>

若要解决此问题,请考虑以下选项之一:

  1. 将缺少的列添加回源表,其数据类型与以前相同。

  2. 删除 PostgreSQL 中的依赖对象。

DESTINATION_NAME_NOT_A_TABLE

实例: <instance>. 无法创建同步表 <destTableUcName> ,因为其目标名称已被目标数据库中的 a <objectType> 使用。

同步表流水线不创建或管理该对象。

删除或重命名现有 <objectType>的表,或者创建一个不同名字的同步表,然后再试一次。

目标_架构_访问错误

实例: <instance>. 同步表管道没有对目标模式 <schemaName> 的权限。 详细信息:<detail>

该流水线以 Postgres 角色 <databaseUser> 身份连接,该角色需要在目标 schema 上具有 USAGECREATE 权限,才能创建并维护目标表。

要解决这个问题,请执行: GRANT USAGE, CREATE ON SCHEMA <quotedSchemaName> TO <quotedDatabaseUser>;然后重启流水线。

重复主键列

在同步表<duplicatedPkColumns>的主键中,多次指定了列<destTableUcName>

若要解决此问题,请从主键中删除重复列,以便每个列仅显示一次。

ENDPOINT_DISABLED

实例: <instance>. 目标数据库实例已被禁用,无法接受连接。 详细信息:<detail>

这通常发生在实例被停止时。 禁用实例不能通过连接尝试启动。

要解决这个问题,请重新启用或启动数据库实例,然后重启流水线。

如果实例是有意停止的,请改为暂停或删除同步表。

ENDPOINT_NOT_FOUND

实例: <instance>. 目标数据库端点无法找到或无法访问。 详细信息:<detail>

要解决这个问题,请确认数据库实例是否存在,并且同步表是否配置了正确的实例。

外键约束违反

实例: <instance>. 在从源表同步时违反了外键约束限制:

<srcTableName>。 细节:<detail>

不支持创建引用同步表的外键约束。 请

删除外键约束并重试同步。

INDEX_ROW_SIZE_EXCEEDED(索引行大小超出限制)

实例: <instance>. 源 Delta 表中 <srcTableName> 的主键值对于 来说太大

PostgreSQL B 树索引。 PostgreSQL 将所有主键中的索引条目限制为大约 2704 字节

组合的列。 详细信息:<detail>

若要解决此问题,请减小存储在主键列中的数据的大小,或者使用更少的列。

较短的主键列。

实例空间不足

由于数据库大小,无法将表 <tableName> 同步到实例 <instance> 中。

当前实例使用情况: <instanceSize> 字节。

估计未压缩的表大小: <estimatedLoadSize> 字节。

实例大小限制: <maxInstanceSize> 字节。

请减少要同步的数据量,或删除实例中的某些现有表以释放空间。

INVALID_ENDPOINT

实例: <instance>. 数据库实例拒绝了连接,因为请求的端点不适用于此操作。 详细信息:<detail>

当不允许只读连接,或请求的计算不存在时,就会发生这种情况。

要解决这个问题,请验证同步表的目标实例和端点配置,然后重启流水线。

INVALID_TABLE_NAME

无效表名称 <tableName>:预期为三部分名称(catalog.schema.table)。

INVALID_TYPE_OVERRIDE

实例: <instance>. 列 <columnName> 的类型重写无效:<reason>

INVALID_VECTOR_DATA

<columnName> 的向量数据无效:<reason>

IP_NOT_ALLOWED

实例: <instance>. 同步表管道的 IP 地址未被允许连接到数据库实例。 详细信息:<detail>

要解决这个问题,可以更新数据库实例的IP允许列表,允许连接。

LOCK_TIMEOUT

实例: <instance>. 数据库: <databaseName>. 同步表管道在配置的超时(<timeoutSeconds> 秒)内无法获取锁。

检测到 <numBlockingTransactions> 个事务持有锁在目标表上(最大锁保留持续时间:<lockDurationSeconds> 秒)。

用户事务持有锁,这些锁阻止了同步表管道更新目标表。

有关错误中涉及的事务的详细信息,请检查 Spark 驱动程序日志(搜索“[LOCK TIMEOUT DIAGNOSTICS]”。

若要解决此问题,请使用 pg_stat_activity 查找 postgres 实例中长时间运行的事务的连接,并关闭这些事务(如果不再需要连接,也可以使用pg_terminate_backend终止连接)。

若要防止将来出现此问题,请考虑以下选项:

  1. 确保您的应用程序要么提交事务,要么回滚事务。

  2. 避免长时间运行的事务。 如果应用程序的工作不需要在事务中执行,请将auto_commit设为开启。

  3. 将idle_in_transaction_session_timeout设置在数据库上,以自动终止空闲事务会话。

示例: ALTER DATABASE <databaseName> SET idle_in_transaction_session_timeout = “5min”;

逻辑大小超出配额

实例: <instance>. 数据库项目已超过其逻辑规模配额,因此同步表流水线无法连接。 详细信息:<detail>

为解决此问题,可以提高项目的逻辑规模配额或减少存储数据量。

配置错误的主键

提供的源 Delta 表主键:<srcTableName> 在源表中不可用。

主键: <primaryKeys>. 可用列: <availableColumns>. 缺少主键: <missingPkColumns>.

若要解决此问题,请考虑以下选项之一:

  1. 将缺少的列添加到源表。

  2. 使用正确的主键配置创建新的同步表。

原生登录被阻止

实例: <instance>. 用于同步表管道的数据库角色已禁用原生(密码)登录。 详细信息:<detail>

为解决此问题,请启用管道数据库角色的原生登录功能,或重新配置该角色以使用支持的认证方法。

网络被阻止

实例: <instance>. 该同步表管道不允许从其所在网络连接到数据库实例。 详细信息:<detail>

要解决这个问题,可以更新数据库实例的网络访问配置,允许连接。

权限被拒绝

详细信息:<detail>

请验证你是否有足够的权限。

PIPELINE_ROLE_NOT_EXIST

实例: <instance>. 缺少同步表管道的数据库编写器角色。 详细信息:<detail>

这通常在删除目标数据库时发生,这会删除管道的编写器角色。

若要解决此问题,请验证目标数据库是否存在且尚未删除。

如果有意删除数据库,请删除同步表,并在重新创建数据库后重新创建该表。

主键约束违规 (PRIMARY_KEY_CONSTRAINT_VIOLATION)

实例: <instance>. 根据主键检测到重复行。 细节:<detail>

这可能表示主键列配置错误。

请验证你是否使用的是正确的主键集

来自源 Delta 表: <srcTableName>

若要解决此问题,请使用正确的值创建新的同步表

主键配置。

配额已超出

实例: <instance>. 目标数据库账户或项目已超出其配额。 详细信息:<detail>

要解决这个问题,可以减少使用率或升级计划以提高配额,然后重启管道。

REFRESH_WITH_FOREIGN_KEY

实例: <instance>. 无法刷新同步表<destTableName>,因为表未能更新。

<childTableName> 具有引用同步表的外键约束。

当存在外键约束时,不支持刷新同步表

引用它。 请删除外键约束,然后重试刷新。

未安装所需扩展程序

实例: <instance>. 未安装所需的 PostgreSQL 扩展 “<extension>''。 在创建这个同步之前,先在 Lakebase 实例上安装它。

架构构建器未启用

此工作区未启用同步表架构自定义 (<features>)。

SCHEMA_DOES_NOT_EXIST

详细信息:<detail>

请验证 Unity 目录中是否存在架构。

SOURCE_READ_ERROR

无法从源表 <tableName>读取 。 请验证是否可以通过 SELECT 查询成功读取源表。

细节:<detail>

需要源智能克隆功能

源物化视图 <srcTableName> 必须先启用 SmartClone,才能用作同步表源。 运行 REPAIR TABLE <srcTableName> SYNC METADATA,然后重试。

SPARK作业已取消

Spark 作业已取消。

细节:<detail>

系统列名称冲突

实例: <instance>. 源 Delta 表 <srcTableName> 包含名称与 PostgreSQL 系统列名称冲突的列。 详细信息:<detail>

PostgreSQL 保留某些列名(如 xmin、xmax、ctid、cmin、cmax、tableoid)供内部使用。

若要解决此问题,请重命名源 Delta 表中的冲突列并重新创建同步表。

或者创建一个视图,将冲突的列排除在外,然后同步该视图。

系统架构访问错误

实例: <instance>. 同步表管道无法访问数据库内部系统架构(__db_system)。 详细信息:<detail>

当数据库重置或内部架构被删除并重新创建且没有适当权限时,可能会发生这种情况。

若要解决此问题,请删除并重新创建同步表 <destTableUcName>

表不存在

详细信息:<detail>

请验证已同步的表是否存在于 Unity 目录中。

目标数据库已满

目标数据库 <databaseName> 空间已满。 无法继续摄取。

TOO_MANY_CONNECTIONS

打开的数据库实例连接过多:<instance>

详细信息:<detail>

每个表同步最多可以使用 16 个到数据库实例的连接,这计入实例的连接限制。

若要解决此问题,请尝试以下选项:

  1. 减少写入同一数据库实例的并发管道数。

例如,交错管道计划。

  1. 减少连接到同一数据库实例的其他工作负荷的并发连接数。

UNSUPPORTED_COLUMN_TYPE(不支持的列类型)

实例: <instance>. 不支持的PostgreSQL列类型: <columnType>

无法翻译字符

实例: <instance>. 在源 Delta 表中找到不可转换的字符。

细节:<detail>

这通常表示源 Delta 表中包含的字符不符合要求。

与目标数据库的编码兼容。 一种解决方法是转换

选择要使用的源表 BINARY TYPE,然后创建一个新的同步表。

VPC_ENDPOINT_NOT_ALLOWED

实例: <instance>. 同步表管道的 VPC 端点无权连接到数据库实例。 详细信息:<detail>

要解决这个问题,可以将VPC端点添加到数据库实例的允许列表中。

已写入数据配额超限

实例: <instance>. 数据库项目已超过其书面数据配额,因此同步表流水线无法连接。 详细信息:<detail>

为了解决这个问题,提高项目的书面数据配额。