Partager via


SYNCED_TABLE_USER_ERROR condition d’erreur

SQLSTATE : 42000

Erreur utilisateur du pipeline de table synchronisée.

CHANGED_PRIMARY_KEY

Les colonnes clés primaires spécifiées pour la table <destTableUcName> synchronisée ont été modifiées.

Colonnes clés primaires spécifiées : (<primaryKeyColumns>). Colonnes clés primaires actuelles : (<existingPrimaryKeyColumns>).

La modification des colonnes clés primaires d’une table synchronisée après sa création n’est pas prise en charge.

Pour résoudre ce problème, modifiez la table synchronisée vers les colonnes clés primaires d’origine, ou créez une table synchronisée et supprimez la table existante.

CHARACTER_NOT_IN_REPERTOIRE

Instance : <instance>. Séquence d’octets non valide trouvée dans la table Delta source.

Détail: <detail>

Cela indique généralement que la table Delta source contient des caractères qui ne correspondent pas

compatible avec l’encodage de la base de données cible. Une solution de contournement consiste à convertir le

table source à utiliser BINARY TYPE, puis créez une table synchronisée.

COLUMN_TYPE_CHANGE_NOT_SUPPORTED

Instance : <instance>. La modification du type de colonne n’est actuellement pas prise en charge.

Table Delta source : <srcTableName>. Table synchronisée de destination : <destTableName>.

Colonne : <columnName>. Type existant : <existingType>. Nouveau type : <newType>.

Pour résoudre ce problème, envisagez l’une des options suivantes :

  1. Effectuez une actualisation complète de la table synchronisée existante.

  2. Créer une table synchronisée (qui récupère le nouveau type)

ERREUR_DE_CONNEXION

Instance : <instance>. Erreur de connexion. Détail : <detail>.

Pour résoudre ce problème, vérifiez que l’instance de base de données est en cours d’exécution, qu’elle n’est pas suspendue ou arrêtée.

Redémarrez le pipeline pour réessayer.

LA_BASE_DE_DONNÉES_N'EXISTE_PAS

La base de données <databaseName> de destination n’existe pas dans l’instance <instance> lakebase. Vérifiez si la base de données de destination existe.

DELTA_TRUNCATED_TRANSACTION_LOG

Détail : <detail>.

Cela indique que le journal des transactions de la delta table a été tronqué à cause d'une suppression manuelle ou d'une politique de rétention du journal.

Pour résoudre ce problème, effectuez une actualisation complète de la table synchronisée.

DES_OBJETS_DÉPENDANTS_EXISTENT_ENCORE

Instance : <instance>. Impossible de supprimer une colonne, car une dépendance existante l'en empêche.

L’objet PostgreSQL fait toujours référence à la colonne. Détail : <detail>.

Pour résoudre ce problème, envisagez l’une des options suivantes :

  1. Ajoutez la ou les colonnes manquantes à la table source avec le ou les mêmes types de données que précédemment.

  2. Supprimez les objets dépendants dans PostgreSQL.

VIOLATION_DE_CONTRAINTE_CLÉ_ÉTRANGÈRE

Instance : <instance>. Violation de contrainte de clé étrangère lors de la synchronisation à partir de la table source :

<srcTableName>. Détail: <detail>

La création de contraintes de clé étrangère référençant des tables de synchronisation n’est pas prise en charge. S’il vous plaît

supprimez la contrainte de clé étrangère et réessayez la synchronisation.

LOCK_TIMEOUT

Instance : <instance>. Base de données : <databaseName>. Le pipeline de table synchronisé n’a pas pu acquérir de verrou dans le délai d’expiration configuré (<timeoutSeconds> secondes).

<numBlockingTransactions> Détection des transactions contenant des verrous sur la table cible (durée maximale de conservation des verrous : <lockDurationSeconds> secondes).

Les transactions utilisateur détiennent des verrous qui empêchent le pipeline de table synchronisée de mettre à jour la table cible.

Pour plus d'informations sur les transactions impliquées dans l'erreur, consultez les journaux d'exécution de Spark (recherchez « [LOCK TIMEOUT DIAGNOSTICS] »).

Pour résoudre ce problème, recherchez les connexions avec des transactions de longue durée dans l’instance postgres à l’aide de pg_stat_activity et fermez ces transactions (peut également utiliser pg_terminate_backend pour arrêter la connexion si la connexion n’est plus nécessaire).

Pour empêcher ce problème de se produire à l’avenir, tenez compte des options suivantes :

  1. Assurez-vous que votre application valide ou restaure la transaction.

  2. Évitez les transactions longues. Définissez auto_commit si le travail dans l’application n’a pas besoin de se produire dans une transaction.

  3. Définissez idle_in_transaction_session_timeout sur la base de données pour arrêter automatiquement les transactions inactives.

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

CLÉ_PRIMAIRE_MAL_CONFIGURÉE

Clés primaires fournies pour la table Delta source : <srcTableName> ne sont pas disponibles dans la table source.

Clés primaires : <primaryKeys>. Colonnes disponibles : <availableColumns>. Clés primaires manquantes : <missingPkColumns>.

Pour résoudre ce problème, envisagez l’une des options suivantes :

  1. Ajoutez les colonnes manquantes à la table source.

  2. Créez une table synchronisée avec la configuration correcte de la clé primaire.

PERMISSION_DENIED

Détail : <detail>.

Vérifiez si vous disposez d’autorisations suffisantes.

PRIMARY_KEY_CONSTRAINT_VIOLATION

Instance : <instance>. Des lignes doublons détectées sur la base de la clé primaire. Détail: <detail>

Cela indique probablement une configuration incorrecte des colonnes clés primaires.

Vérifiez que vous utilisez l’ensemble correct de clés primaires

à partir du tableau Delta source : <srcTableName>.

Pour résoudre ce problème, créez une table de synchronisation avec les paramètres appropriés.

Configuration de clé primaire.

REFRESH_WITH_FOREIGN_KEY

Instance : <instance>. Échec de l'actualisation de la table synchronisée <destTableName>, car la table

<childTableName> a une contrainte de clé étrangère référençant la table synchronisée.

L’actualisation de la table synchronisée n’est pas prise en charge lorsqu’il existe des contraintes de clé étrangère

référant à cela. Supprimez la contrainte de clé étrangère et réessayez l’actualisation.

SCHEMA_DOES_NOT_EXIST

Détail : <detail>.

Vérifiez si le schéma existe dans le catalogue Unity.

SOURCE_READ_ERROR

Échec de la lecture à partir de la table source <tableName>. Vérifiez si la table source peut être lue correctement via une SELECT requête.

Détail: <detail>

SPARK_JOB_CANCELLED

Le travail Spark est annulé.

Détail: <detail>

TABLE_N'EXISTE_PAS

Détail : <detail>.

Vérifiez si la table synchronisée existe dans le catalogue Unity.

TARGET_DATABASE_FULL

L’espace de base de données <databaseName> cible est plein. Impossible de continuer à ingérer.

TROP_DE_CONNEXIONS

Trop de connexions ouvertes à l’instance de base de données : <instance>

Détail : <detail>.

Chaque synchronisation de tables peut utiliser jusqu’à 16 connexions à l’instance de base de données, ce qui compte pour la limite de connexion de l’instance.

Pour résoudre ce problème, essayez les options suivantes :

  1. Réduisez le nombre de pipelines simultanés écrivant vers la même instance de base de données.

Par exemple, décaler les planifications de pipeline.

  1. Réduisez le nombre de connexions simultanées à partir d’autres charges de travail qui se connectent à la même instance de base de données.

UNTRANSLATABLE_CHARACTER

Instance : <instance>. Caractère non translatable trouvé dans la table Delta source.

Détail: <detail>

Cela indique généralement que la table Delta source contient des caractères qui ne correspondent pas

compatible avec l’encodage de la base de données cible. Une solution de contournement consiste à convertir le

table source à utiliser BINARY TYPE, puis créez une table synchronisée.