Partilhar via


SYNCED_TABLE_USER_ERROR condição de erro

SQLSTATE: 42000

Erro do usuário do pipeline de tabela sincronizada.

CHAVE_PRIMÁRIA_ALTERADA

As colunas principais especificadas para a tabela <destTableUcName> sincronizada foram alteradas.

Colunas de chave primária especificadas: (<primaryKeyColumns>). Colunas de chave primária atuais: (<existingPrimaryKeyColumns>).

Alterar as colunas principais de uma tabela sincronizada depois de esta ter sido criada não é suportado.

Para resolver este problema, pode modificar a tabela sincronizada de volta para as colunas da chave primária original, ou criar uma nova tabela sincronizada e eliminar a existente.

CARACTERE_NÃO_NO_REPERTÓRIO

Exemplo: <instance>. Encontrada sequência de bytes inválida na tabela Delta de origem.

Detalhe: <detail>

Isso geralmente indica que a tabela Delta de origem contém caracteres que não são

compatível com a codificação do banco de dados de destino. Uma solução alternativa é converter o

tabela fonte para utilizar o BINARY TYPE e depois criar uma nova tabela sincronizada.

ALTERAÇÃO_DE_TIPO_DE_COLUNA_NÃO_SUPORTADA

Exemplo: <instance>. No momento, não há suporte para alterar o tipo de coluna.

Tabela Delta de origem: <srcTableName>. Tabela sincronizada de destino: <destTableName>.

Coluna: <columnName>. Tipo existente: <existingType>. Novo tipo: <newType>.

Para resolver esse problema, considere uma das seguintes opções:

  1. Execute uma atualização completa da tabela sincronizada existente.

  2. Criar uma nova tabela sincronizada (que pegará o novo tipo)

ERRO_DE_LIGAÇÃO

Exemplo: <instance>. Erro de conexão. Detalhe: <detail>.

Para resolver esse problema, verifique se a instância do banco de dados está em execução, não pausada ou parada.

Reinicie o pipeline para tentar novamente.

BASE_DE_DADOS_NÃO_EXISTE

A base de dados <databaseName> de destino não existe na instância <instance>lakebase . Por favor, verifique se a base de dados de destino existe.

DELTA_TRUNCATED_TRANSACTION_LOG

Detalhe: <detail>.

Isto indica que o registo de transações da tabela delta foi truncado devido à eliminação manual ou à política de retenção de registos.

Para resolver este problema, faça uma atualização completa da tabela sincronizada.

OBJETOS_DEPENDENTES_AINDA_EXISTEM

Exemplo: <instance>. Não é possível eliminar uma coluna porque um existente

O objeto do PostgreSQL ainda está a referir-se à coluna. Detalhe: <detail>.

Para resolver esse problema, considere uma das seguintes opções:

  1. Adicione a(s) coluna(s) em falta de volta à tabela de origem com o(s) mesmo(s) tipo(s) de dados de antes.

  2. Elimina os objetos dependentes no PostgreSQL.

VIOLAÇÃO_DE_CONSTRANGIMENTO_DE_CHAVE_ESTRANGEIRA

Exemplo: <instance>. Violação de restrição de chave estrangeira ao sincronizar a partir da tabela de origem:

<srcTableName>. Detalhe: <detail>

A criação de restrições de chave estrangeira que referenciam tabelas de sincronização não é suportada. Por favor

Elimina a restrição da chave estrangeira e tenta novamente a sincronização.

LOCK_TIMEOUT

Exemplo: <instance>. Base de dados: <databaseName>. O pipeline de tabela sincronizada não conseguiu adquirir um bloqueio dentro do timeout configurado (<timeoutSeconds> segundos).

Transações detetadas <numBlockingTransactions> que detêm bloqueios na tabela alvo (duração máxima de bloqueio: <lockDurationSeconds> segundos).

As transações do utilizador estão a manter bloqueios que impedem o pipeline da tabela sincronizada de atualizar a tabela de destino.

Para mais informações sobre as transações envolvidas no erro, consulte os registos do driver Spark (procure por '[LOCK TIMEOUT DIAGNOSTICS]').

Para resolver este problema, encontre as ligações com transações de longa duração na instância do postgres usando pg_stat_activity, e feche essas transações (também pode usar pg_terminate_backend para terminar a ligação se a ligação já não for necessária).

Para evitar que este problema volte a acontecer no futuro, considere as seguintes opções:

  1. Certifique-se de que a sua aplicação efetua o commit ou desfaz a transação.

  2. Evite transações de longa duração. Defina auto_commit para ativado se o trabalho na aplicação não precisar de ser feito numa transação.

  3. Defina idle_in_transaction_session_timeout na base de dados para terminar automaticamente as transações ociosas.

Exemplo: ALTER DATABASE <databaseName> SET idle_in_transaction_session_timeout = '5min';

Chave primária mal configurada (MIS_CONFIGURED_PRIMARY_KEY)

As chaves primárias fornecidas para a tabela Delta de origem: <srcTableName> não estão disponíveis na tabela de origem.

Chaves primárias: <primaryKeys>. Colunas disponíveis: <availableColumns>. Chaves primárias em falta: <missingPkColumns>.

Para resolver esse problema, considere uma das seguintes opções:

  1. Adicione as colunas em falta à tabela de origem.

  2. Crie uma nova tabela sincronizada com a configuração correta da chave primária.

PERMISSION_DENIED

Detalhe: <detail>.

Por favor, verifique se tem permissões suficientes.

PRIMARY_KEY_CONSTRAINT_VIOLATION

Exemplo: <instance>. Linhas duplicadas detetadas com base na chave primária. Detalhe: <detail>

Isso provavelmente indica uma configuração incorreta das colunas de chave primária.

Verifique se você está usando o conjunto correto de chaves primárias

da tabela Delta de origem: <srcTableName>.

Para resolver este problema, crie uma nova tabela sincronizada com as informações corretas.

configuração de chave primária.

REFRESH_WITH_FOREIGN_KEY

Exemplo: <instance>. Não foi possível atualizar a tabela <destTableName> sincronizada porque a tabela

<childTableName> tem uma restrição de chave estrangeira que faz referência à tabela sincronizada.

A atualização da tabela sincronizada não é suportada quando existem restrições de chave estrangeira

fazendo referência a isso. Por favor, retira a restrição da chave estrangeira e tenta novamente a atualização.

ESQUEMA_NÃO_EXISTE

Detalhe: <detail>.

Por favor, verifique se o esquema existe no Catálogo Unity.

ERRO_DE_LEITURA_DE_FONTE

Falha ao tentar ler da tabela de origem <tableName>. Por favor, verifique se a tabela de origem pode ser lida com sucesso através de uma SELECT consulta.

Detalhe: <detail>

SPARK_JOB_CANCELLED

O trabalho do Spark foi cancelado.

Detalhe: <detail>

TABELA_NÃO_EXISTE

Detalhe: <detail>.

Por favor, verifique se a tabela sincronizada existe no Unity Catalog.

TARGET_DATABASE_FULL

O espaço do banco de dados de destino <databaseName> está cheio. Não é capaz de continuar a ingerir.

CONEXÕES_EXCESSIVAS

Demasiadas ligações abertas à instância da base de dados: <instance>

Detalhe: <detail>.

Cada sincronização de tabela pode usar até 16 ligações à instância da base de dados, que contam para o limite de ligação da instância.

Para resolver este problema, experimente as seguintes opções:

  1. Reduza o número de pipelines concorrentes que escrevem para a mesma instância da base de dados.

Por exemplo, escalonar os horários do pipeline.

  1. Reduzir o número de ligações concorrentes de outras cargas de trabalho que se ligam à mesma instância da base de dados.

UNTRANSLATABLE_CHARACTER

Exemplo: <instance>. Encontrei carácter intraduzível na tabela Delta de origem.

Detalhe: <detail>

Isso geralmente indica que a tabela Delta de origem contém caracteres que não são

compatível com a codificação do banco de dados de destino. Uma solução alternativa é converter o

tabela fonte para utilizar o BINARY TYPE e depois criar uma nova tabela sincronizada.