Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Comment identifier les erreurs de requête d'API de données dans Amazon Redshift ?
Je souhaite déterminer pourquoi ma requête d'API de données Amazon Redshift a échoué.
Résolution
L'API de données Amazon Redshift est asynchrone. Il n’est pas nécessaire d'attendre la fin de l’opération pour exécuter des requêtes de longue durée.
Lorsqu'une requête échoue, son statut ne s'affiche pas immédiatement. Utilisez l'action d'API DescribeStatement pour déterminer les raisons de l'échec d'une ou de plusieurs requêtes.
Requêtes uniques
Identifier l'ID d’instruction
Pour exécuter une requête unique sur un cluster Amazon Redshift, commencez par obtenir l'ID d’instruction.
Pour obtenir un ID d’instruction, exécutez l'action d'API ExecuteStatement. L'exemple de commande suivant s'authentifie via AWS Secrets Manager et exécute votre instruction SQL sur un cluster :
aws redshift-data execute-statement --region us-east-1 --secret arn:aws:secretsmanager:us-east-1:123456789012:secret:myuser-secret-hKgPWn --cluster-identifier redshift-cluster-1 --sql "select * from test_table;" --database dev
Exemple de sortie :
{ "ClusterIdentifier": "redshift-cluster-1", "CreatedAt": "2022-09-16T12:22:31.894000+05:30", "Database": "dev", "Id": "458c568d-717b-4f36-90bd-e642bfb06cbf", "SecretArn": "arn:aws:secretsmanager:us-east-1:123456789012:secret:myuser-secret-hKgPWn" }
La section Id de la sortie affiche l'ID d’instruction.
Vérifier le statut
Pour vérifier le statut de la requête, utilisez DescribeStatement et entrez l'ID d’instruction.
aws redshift-data describe-statement --id 458c568d-717b-4f36-90bd-e642bfb06cbf
Exemple de sortie :
{ "ClusterIdentifier": "redshift-cluster-1", "CreatedAt": "2022-09-16T12:22:31.894000+05:30", "Duration": -1, "Error": "ERROR: relation "test_table" does not exist", "HasResultSet": false, "Id": "458c568d-717b-4f36-90bd-e642bfb06cbf", "QueryString": "select * from test_table;", "RedshiftPid": 1074727629, "RedshiftQueryId": -1, "ResultRows": -1,< "ResultSize": -1, "SecretArn": "arn:aws:secretsmanager:us-east-1:123456789012:secret:myuser-secret-hKgPWn", "Status": "FAILED", "UpdatedAt": "2022-09-16T12:22:32.365000+05:30" }
La section Erreur de la sortie affiche l'erreur suivante : « ERROR: relation "test_table" does not exist ».
Requêtes multiples
Identifier l'ID d’instruction
Pour exécuter plusieurs requêtes sur un cluster Amazon Redshift, commencez par obtenir l'ID d’instruction.
Pour obtenir un ID d’instruction, utilisez l'action d'API BatchExecuteStatement. Reportez-vous à l’exemple suivant :
aws redshift-data batch-execute-statement --region us-east-1 --secret-arn arn:aws:secretsmanager:us-east-1:123456789012:secret:myuser-secret-hKgPWn --cluster-identifier redshift-cluster-1 --database dev --sqls "select * from test_table;" "select * from another_table;"
Exemple de sortie :
{ "ClusterIdentifier": "redshift-cluster-1", "CreatedAt": "2022-09-16T12:37:16.707000+05:30", "Database": "dev", "Id": "08b4b917-9faf-498a-964f-e82a5959d1cb", "SecretArn": "arn:aws:secretsmanager:us-east-1:123456789012:secret:myuser-secret-hKgPWn" }
La section Id de la sortie affiche l'ID d’instruction.
Vérifier le statut
Pour vérifier le statut de la requête, utilisez DescribeStatement et entrez l'ID d’instruction :
aws redshift-data describe-statement --id 08b4b917-9faf-498a-964f-e82a5959d1cb
Exemple de sortie :
{ "ClusterIdentifier ": "redshift-cluster-1 ", "CreatedAt ": "2022-09-16T12:37:16.707000+05:30 ", "Duration ": 0, "Error ": "Query #1 failed with ERROR: relation \ "test_table\" does not exist ", "HasResultSet ": false, "Id ": "08b4b917-9faf-498a-964f-e82a5959d1cb ", "RedshiftPid ": 1074705048, "RedshiftQueryId ": 0, "ResultRows ":-1, "ResultSize ": -1, "SecretArn ": "arn:aws:secretsmanager:us-east-1:123456789012:secret:myuser-secret-hKgPWn ", "Status ": "FAILED ", "SubStatements ": [ { "CreatedAt ": "2022-09-16T12:37:16.905000+05:30 ", "Duration ": -1, "Error ": "ERROR: relation \ "test_table\" does not exist ", "HasResultSet ": false, "Id ": "08b4b917-9faf-498a-964f-e82a5959d1cb:1", "QueryString ": "select * from test_table; ", "RedshiftQueryId ": -1, "ResultRows ": -1, "ResultSize ": -1, "Status ": "FAILED ", "UpdatedAt ": "2022-09-16T12:37:17.263000+05:30 " }, { "CreatedAt ": "2022-09-16T12:37:16.905000+05:30", "Duration ": -1, "Error ": "Connection or an prior query failed. ", "HasResultSet ": false, "Id ": "08b4b917-9faf-498a-964f-e82a5959d1cb:2 ", "QueryString ": "select * from another_table;", "RedshiftQueryId ": 0, "ResultRows ": -1, "ResultSize": -1, "Status ": "ABORTED ", "UpdatedAt ": "2022-09-16T12:37:17.263000+05:30 " } ], "UpdatedAt ": "2022-09-16T12:37:17.288000+05:30 " }
La sortie affiche l'état de chaque instruction SQL individuelle de votre requête multi-instructions. La section Erreur de la sortie affiche l'erreur pour chaque instruction.
Pour résoudre les problèmes liés à l'API de données, consultez la section Résolution de problèmes liés à l'API de données Amazon Redshift.
Remarque : Les utilisateurs ayant le même rôle Gestion des identités et des accès AWS (AWS IAM) ou les mêmes autorisations IAM que l'exécutant d'une opération d'API ExecuteStatement ou BatchExecuteStatement peuvent agir sur la même instruction avec DescribeStatement. Si un autre utilisateur souhaite agir sur la même instruction SQL, il doit endosser le rôle IAM de l'utilisateur qui a exécuté l'instruction SQL.
Pour plus d'informations, consultez la section Considérations à prendre en compte lors de l'appel de l'API de données Amazon Redshift.
Événements de l'API de surveillance des données
Amazon EventBridge surveille les événements de l'API de données. Si vous envoyez ces informations à une fonction AWS Lambda, celle-ci se connecte à Amazon Simple Notification Service (Amazon SNS) pour envoyer des notifications.
Pour plus d'informations, consultez la section Création d'une application basée sur les événements avec AWS Lambda et l'API de données Amazon Redshift.
- Sujets
- Analytics
- Balises
- Amazon Redshift
- Langue
- Français

Contenus pertinents
- demandé il y a 2 ans
- demandé il y a 2 ans
- demandé il y a 4 mois
- demandé il y a un an
AWS OFFICIELA mis à jour il y a 3 ans