Comment résoudre les erreurs d'exception SQL avec des sources de données SQL personnalisées dans QuickSight ?

Dernière mise à jour : 25-07-2022

J'essaie d'utiliser des sources de données SQL personnalisées dans Amazon QuickSight, mais le message d'erreur « Your database generated a SQL exception. » (Votre base de données a généré une exception SQL) s'affiche. » Comment puis-je résoudre ce problème ?

Brève description

Le message d'erreur suivant s'affiche lorsque Amazon QuickSight interroge ou actualise votre source de données SQL :

"Your database generated a SQL exception. This can be caused by query timeouts, resource constraints, unexpected DDL alterations before or during a query, and other database errors. Check your database settings and your query, and try again."

Pour plus d'informations sur la cause de l'erreur, choisissez Show Details (Afficher les détails) sous le message d'erreur.

Généralement, ce message d'erreur apparaît pour les raisons suivantes :

  • Le délai de requête expire.
  • Il existe un problème de connexion VPC à votre source de données.
  • Votre compte QuickSight n'est pas autorisé à accéder aux données.
  • Votre fonction de service QuickSight n'est pas autorisée à accéder à la clé AWS Managed Key Management Service (AWS KMS).
  • Vous utilisez des types de données ou des fonctions non pris en charge.

Résolution

Si vous recevez des erreurs lors de l'exécution de commandes dans l'Interface de la ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente d'AWS CLI.

La requête expire

Si la requête SQL personnalisée expire, simplifiez-la pour optimiser l'exécution. Pour d'autres solutions liées à l'expiration des requêtes, reportez-vous à Comment résoudre les problèmes d'expiration des requêtes dans QuickSight ?

Il existe un problème de connexion VPC à votre source de données

Les détails de votre message d'erreur sont les suivants :

Communications link failure The last packet successfully received from the server was nnnn milliseconds ago. The last packet sent successfully to the server was nnnn milliseconds ago.

-ou-

Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

Si vous rencontrez des problèmes de connexion VPC à vos sources de données, vérifiez le groupe de sécurité réseau du VPC associé à la ressource. Pour plus d'informations, reportez-vous à Connexion à un VPC avec Amazon QuickSight.

Votre compte QuickSight n'est pas autorisé à accéder aux données

Si vous rencontrez une exception SQL lorsque vous essayez d'accéder aux données d'un service AWS, vérifiez vos paramètres de sécurité et d'autorisations QuickSight.

  1. Ouvrez la console Amazon QuickSight.
  2. Choisissez Manage Gérer QuickSight (Gérer QuickSight).
  3. Choisissez Security & Permissions (Sécurité et autorisations).
  4. Configurez l'accès aux services pris en charge que vous utilisez.

Si vous utilisez AWS Organizations, vous pouvez recevoir l'erreur lorsque les politiques de contrôle des services (SCP) nécessaires ne vous sont pas attribuées. Demandez à l'administrateur AWS Organizations de vérifier vos paramètres SCP, afin de déterminer les autorisations qui vous sont attribuées. Si vous êtes administrateur AWS Organizations, reportez-vous à Création, mise à jour et suppression de politiques de contrôle des services.

Votre fonction de service QuickSight n'est pas autorisée à accéder à la clé KMS gérée par AWS

Vous recevez l'erreur suivante :

If you are encrypting query results with KMS key, please ensure you are allowed to access your KMS key.

Assurez-vous que le rôle de fonction QuickSight dispose des autorisations de clé AWS KMS correctes.

  1. Utilisez la console AWS Identity and Access Management (IAM) pour localiser l'ARN de la fonction de service QuickSight.
  2. Utilisez la console Amazon Simple Storage Service (Amazon S3) pour trouver l'ARN de la clé AWS KMS.
    Accédez au compartiment qui contient votre fichier de données.
    Cliquez sur l'onglet Overview (Présentation), puis localisez l'ID de clé KMS.
  3. Ajoutez l'ARN de la fonction de service QuickSight à la politique de clé KMS.

Exécutez la commande create-grant de l'AWS CLI :

aws kms create-grant —key-id aws_kms_key_arn —grantee-principal quicksight_role_arn —operations Decrypt

Remarque : remplacez aws_kms_key_arn par l'ARN de votre clé AWS KMS et quicksight_role_arn par l'ARN de votre fonction de service QuickSight.

Vous utilisez des types de données ou des fonctions non pris en charge

Si vous essayez d'importer un type de données non pris en charge, ou si vous utilisez une fonction SQL non prise en charge, vous recevez une exception SQL. Pour résoudre ce problème, vérifiez la source de données SQL, afin de déterminer si le type de données ou la fonction SQL est pris en charge.

Pour déterminer ce qui est pris en charge, consultez les ressources suivantes :