Wie behebe ich SQL-Ausnahmefehler bei benutzerdefinierten SQL-Datenquellen in QuickSight?

Letzte Aktualisierung: 25.07.2022

Ich versuche, benutzerdefinierte SQL-Datenquellen in Amazon QuickSight zu verwenden, erhalte aber die Fehlermeldung „Your database generated a SQL exception“ (Ihre Datenbank hat eine SQL-Ausnahme generiert). Wie kann ich dies beheben?

Kurzbeschreibung

Die folgende Fehlermeldung wird angezeigt, wenn Amazon QuickSight Ihre SQL-Datenquelle abfragt oder aktualisiert:

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

Um detailliertere Informationen darüber zu erhalten, was den Fehler verursacht hat, wählen Sie unter der Fehlermeldung Details anzeigen.

Häufige Gründe für den Empfang der Fehlermeldung:

  • Die Abfrage läuft wegen Zeitüberschreitung ab.
  • Es liegt ein Problem mit der VPC-Verbindung zu Ihrer Datenquelle vor.
  • Ihr QuickSight-Konto ist nicht berechtigt, auf die Daten zuzugreifen.
  • Ihre QuickSight-Servicerolle hat keine Berechtigung, auf den von AWS verwalteten Schlüssel aus dem AWS Key Management Service (AWS KMS) zuzugreifen.
  • Sie verwenden nicht unterstützte Datentypen oder Funktionen.

Lösung

Wenn Sie beim Ausführen von Befehlen der AWS Command Line Interface (AWS CLI) Fehlermeldungen erhalten, stellen Sie sicher, dass Sie die neueste AWS-CLI-Version verwenden.

Die Abfrage läuft wegen Zeitüberschreitung ab

Wenn die benutzerdefinierte SQL-Abfrage wegen Zeitüberschreitung abläuft, vereinfachen Sie die Abfrage, um die Laufzeit zu optimieren. Weitere Lösungen für Abfrage-Timeouts finden Sie unter Wie behebe ich Abfrage-Timeout-Probleme in QuickSight

Es liegt ein Problem mit der VPC-Verbindung zu Ihrer Datenquelle vor

Ihre Fehlermeldung enthält die folgenden Details:

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.

-oder-

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.

Wenn Probleme mit der VPC-Verbindung zu Ihren Datenquellen auftreten, überprüfen Sie die Netzwerksicherheitsgruppe in der VPC, die der Ressource zugeordnet ist. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit einer VPC mit Amazon QuickSight.

Ihr QuickSight-Konto ist nicht berechtigt, auf die Daten zuzugreifen

Wenn beim Versuch, auf Daten in einem AWS-Service zuzugreifen, ein SQL-Ausnahmefehler auftritt, überprüfen Sie Ihre QuickSight-Sicherheits- und Berechtigungseinstellungen.

  1. Öffnen Sie die Amazon-QuickSight-Konsole.
  2. Wählen Sie Manage QuickSight (QuickSight verwalten).
  3. Wählen SieSecurity & Permissions (Sicherheit und Berechtigungen).
  4. Konfigurieren Sie den Zugriff auf die von Ihnen verwendeten unterstützten Dienste.

Wenn Sie AWS Organizations verwenden, kann die Fehlermeldung angezeigt werden, wenn Ihnen nicht die erforderlichen Service-Kontrollrichtlinien (Service Control Policies, SCPs) zugewiesen wurden. Bitten Sie den Administrator von AWS Organizations, in Ihren SCP-Einstellungen die Ihnen zugewiesenen Berechtigungen zu überprüfen. Als Administrator von AWS Organizations erhalten Sie unter So erstellen, aktualisieren und löschen Sie Service-Kontrollrichtlinien weitere Informationen.

Ihre QuickSight-Servicerolle hat keine Berechtigung, auf den von AWS verwalteten KMS-Schlüssel zuzugreifen

Sie erhalten folgende Fehlermeldung:

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

Stellen Sie sicher, dass die QuickSight-Servicerolle über die richtigen AWS-KMS-Schlüsselberechtigungen verfügt.

  1. Ermitteln Sie über die AWS Identity and Access Management (IAM)-Konsole den ARN der QuickSight-Servicerolle.
  2. Suchen Sie über die Amazon Simple Storage Service (Amazon S3)-Konsole nach dem ARN des AWS-KMS-Schlüssels.
    Gehen Sie zu dem Bucket, der Ihre Datendatei enthält.
    Wählen Sie die Registerkarte Overview (Übersicht) und suchen Sie die KMS-Schlüssel-ID.
  3. Fügen Sie der KMS-Schlüsselrichtlinie den ARN der QuickSight-Servicerolle hinzu.

Führen Sie den AWS-CLI-Befehl create-grant aus:

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

Hinweis: Ersetzen Sie aws_kms_key_arn durch den ARN Ihres AWS-KMS-Schlüssels und quicksight_role_arn durch den ARN Ihrer QuickSight-Servicerolle.

Sie verwenden nicht unterstützte Datentypen oder Funktionen

Wenn Sie versuchen, einen nicht unterstützten Datentyp zu importieren oder eine nicht unterstützte SQL-Funktion zu verwenden, wird ein SQL-Ausnahmefehler angezeigt. Überprüfen Sie zum Beheben dieses Problems die SQL-Datenquelle, um festzustellen, ob der Datentyp oder die SQL-Funktion unterstützt wird.

Sehen Sie in den folgenden Ressourcen nach, was unterstützt wird: