QuickSight でカスタム SQL データソースの SQL 例外エラーを解決するにはどうすればよいですか?

最終更新日: 2022 年 7 月 25 日

Amazon QuickSight でカスタム SQL データソースを使用しようとしていますが、「Your database generated a SQL exception.」(データベースが SQL 例外を生成しました。) というエラーが発生します。 これを解決するにはどうすればよいですか?

簡単な説明

Amazon QuickSight が 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."

エラーの原因に関する詳細情報を表示するには、エラーメッセージの下にある [Show Details] (詳細を表示) を選択します。

エラーメッセージが表示される一般的な理由は次のとおりです。

  • クエリがタイムアウトする。
  • データソースへの VPC 接続に問題がある。
  • データにアクセスするための許可が QuickSight アカウントに付与されていない。
  • AWS マネージド Key Management Service (AWS KMS) キーにアクセスするための許可が QuickSight サービスロールに付与されていない。
  • サポートされていないデータ型または関数を使用している。

解決方法

AWS コマンドラインインターフェイス (AWS CLI) のコマンド実行時にエラーが発生した場合は、 AWS CLI の最新バージョンを使用するようにしてください

クエリがタイムアウトする

カスタム SQL クエリがタイムアウトする場合は、クエリを簡略化してランタイムを最適化します。クエリのタイムアウトに関する他の解決方法については、「QuickSight でクエリタイムアウトの問題を解決する方法を教えてください」を参照してください。

データソースへの VPC 接続に問題がある

エラーメッセージの詳細には次が含まれます。

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.

- または -

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.

データソースへの VPC 接続の問題が発生している場合は、リソースに関連付けられている VPC のネットワークセキュリティグループを確認します。詳細については、「Connecting to a VPC with Amazon QuickSight」(Amazon QuickSight で VPC に接続する) を参照してください。

データにアクセスするための許可が QuickSight アカウントに付与されていない

AWS のサービスのデータにアクセスしようとしたときに SQL 例外エラーが発生した場合は、QuickSight のセキュリティと許可の設定を確認してください。

  1. Amazon QuickSight コンソールを開きます。
  2. [Manage QuickSight] (QuickSight を管理) を選択します。
  3. [Security & Permissions] (セキュリティと許可) を選択します。
  4. 使用するサポート対象サービスへのアクセスを設定します。

AWS Organizations を使用している場合、必要なサービスコントロールポリシー (SCP) が割り当てられていないときにエラーが表示されることがあります。割り当てられている許可を確認するために、AWS Organizations の管理者に問い合わせて SCP 設定を確認してください。AWS Organizations の管理者は、「Creating, updating, and deleting service control policies」(サービスコントロールポリシーの作成、更新、削除) を参照してください。

AWS マネージド KMS キーにアクセスするための許可が QuickSight サービスロールに付与されていない

次のエラーが表示されます。

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

QuickSight のサービスロールに正しい AWS KMS キー許可が付与されていることを確認します。

  1. AWS Identity and Access Management (IAM) コンソールを使用して、QuickSight のサービスロールの ARN を見つけます。
  2. Amazon Simple Storage Service (Amazon S3) コンソールを使用して、AWS KMS キーの ARN を見つけます。
    データファイルを含むバケットに移動します。
    [Overview] (概要) タブを選択し、[KMS key ID] (KMS キー ID) を見つけます。
  3. QuickSight のサービスロールの ARN を KMS キーポリシーに追加します。

AWS CLI の create-grant コマンドを実行します。

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

注: aws_kms_key_arn を AWS KMS キーの ARN に置き換え、quicksight_role_arn を QuickSight のサービスロールの ARN に置き換えます。

サポートされていないデータ型または関数を使用している

サポートされていないデータ型をインポートしようとしたり、サポートされていない SQL 関数を使用しようとしたりすると、SQL 例外エラーが発生します。この問題を解決するには、SQL データソースを確認して、データ型または SQL 関数がサポートされているかどうかを判断します。

サポート対象を確認するには、次のリソースを確認してください。