Come posso risolvere gli errori di eccezione SQL con origini dei dati SQL personalizzate in QuickSight?

Ultimo aggiornamento: 25/07/2022

Sto cercando di utilizzare origini dei dati SQL personalizzate in Amazon QuickSight, ma ricevo il messaggio di errore "Your database generated a SQL exception" (Il tuo database ha generato un'eccezione SQL). Come posso risolvere questo problema?

Breve descrizione

Quando Amazon QuickSight esegue una query o aggiorna l'origine dei dati SQL, compare il seguente messaggio di errore:

"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."

Per informazioni più dettagliate sulla causa dell'errore, scegli Show Details (Mostra dettagli) sotto il messaggio di errore.

Alcuni dei motivi più comuni del messaggio di errore sono i seguenti:

  • Timeout della query.
  • Si è verificato un problema con la connessione VPC all'origine dei dati.
  • Il tuo account QuickSight non dispone dell'autorizzazione per accedere ai dati.
  • Il tuo ruolo di servizio QuickSight non dispone dell'autorizzazione per accedere alla chiave gestita da AWS del Servizio di gestione delle chiavi AWS (AWS KMS).
  • Stai utilizzando tipi di dati o funzioni non supportati.

Risoluzione

Se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente di AWS CLI.

Timeout della query

In caso di timeout, semplifica la query SQL personalizzata per ottimizzare il runtime. Per altre soluzioni in caso di scadenza delle query, consulta Come posso risolvere i problemi di timeout delle query in QuickSight?.

Si è verificato un problema con la connessione VPC all'origine dei dati

I dettagli del messaggio di errore includono quanto segue:

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.

oppure

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.

Se si verificano problemi di connessione VPC alle origini dei dati, controlla il gruppo di sicurezza di rete nel VPC associato alla risorsa. Per ulteriori informazioni, consulta Connecting to a VPC with Amazon QuickSight.

Il tuo account QuickSight non dispone dell'autorizzazione per accedere ai dati

Se si verifica un errore di eccezione SQL quando tenti di accedere ai dati in un servizio AWS, controlla le impostazioni di sicurezza e delle autorizzazioni di QuickSight.

  1. Apri la console di Amazon QuickSight.
  2. Scegli Manage QuickSight (Gestisci QuickSight).
  3. Scegli Security & Permissions (Sicurezza e autorizzazioni).
  4. Configura l'accesso ai servizi supportati che utilizzi.

Se utilizzi AWS Organizations, puoi ricevere l'errore se non disponi delle policy di controllo del servizio (SCP) necessarie a te assegnate. Chiedi all'amministratore di AWS Organizations di controllare le impostazioni delle SCP per verificare le autorizzazioni che ti sono state assegnate. Se sei un amministratore di AWS Organizations, consulta Creazione, aggiornamento ed eliminazione delle policy di controllo dei servizi.

Il tuo ruolo di servizio QuickSight non dispone dell'autorizzazione per accedere alla chiave KMS gestita da AWS

Viene visualizzato il seguente errore:

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

Assicurati che il ruolo di servizio QuickSight disponga delle corrette autorizzazioni relative alla chiave AWS KMS.

  1. Usa la console di AWS Identity and Access Management (IAM) per individuare l'ARN del ruolo di servizio QuickSight.
  2. Usa la console di Amazon Simple Storage Service (Amazon S3) per trovare l'ARN della chiave AWS KMS.
    Vai al bucket che contiene il tuo file di dati.
    Scegli la scheda Overview (Panoramica) e individua KMS key ID (ID chiave KMS).
  3. Aggiungi l'ARN del ruolo di servizio QuickSight alla policy della chiave KMS.

Esegui il comando create-grant di AWS CLI:

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

Nota: sostituisci aws_kms_key_arn con l'ARN della tua chiave AWS KMS e quicksight_role_arn con l'ARN del tuo ruolo di servizio QuickSight.

Stai utilizzando tipi di dati o funzioni non supportati

Se provi a importare un tipo di dati non supportato oppure utilizzi una funzione SQL non supportata, viene visualizzato un errore di eccezione SQL. Per risolvere il problema, controlla l'origine dei dati SQL per determinare se il tipo di dati o la funzione SQL sono supportati.

Per vedere che cosa è supportato, consulta le seguenti risorse: