Amazon Quick Suite でカスタム SQL データソースを使用しようとしたところ、"Your database generated a SQL exception" というエラーメッセージが発生しました。
簡単な説明
Quick Suite が 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."
上記のエラーメッセージは、次の理由で発生する場合があります。
- クエリのタイムアウト。
- データソースへの仮想プライベートクラウド (VPC) 接続に問題がある。
- Quick Suite アカウントがデータへのアクセスを許可されていない。
- Quick Suite サービスロールが、AWS マネージド Key Management Service (AWS KMS) キーへのアクセスを許可されていない。
- サポートされていないデータ型または関数を使用した。
注: エラーの原因の詳細については、エラーメッセージの下にある [詳細を表示] を選択すると確認できます。
データセットの更新時に上記のエラーメッセージが発生した場合は、データセットの [概要] でエラーに関する詳細を確認できます。[インポート失敗ステータス] を選択すると、詳細を取得できます。
上記のエラーメッセージがダッシュボードに表示されている場合は、[基盤分析] に移動し、[関連するビジュアル] を選択します。分析の左側のペインにあるデータセットを書き留めた後、データセットの [概要] を確認します。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI のエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
クエリのタイムアウト
カスタム SQL クエリがタイムアウトした場合は、クエリを簡素化して実行時間を最適化します。その他のクエリタイムアウトの解決策については、「Quick Suite でクエリタイムアウトエラーを解決する方法を教えてください」を参照してください。
データソースへの VPC 接続に問題がある
次のいずれかのエラーメッセージが表示されます。
"Communications link failure The last packet successfully received from the server was #### milliseconds ago.The last packet sent successfully to the server was #### 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 のネットワークセキュリティグループを確認してください。詳細については、「Configuring VPC connections in Amazon Quick Suite」(Amazon Quick Suite での VPC 接続の設定) を参照してください。
Quick Suite アカウントがデータへのアクセスを許可されていない
AWS サービスのデータにアクセスしようとしたときに SQL 例外エラーが発生した場合は、Quick Suite の AWS サービスへのアクセスを確認してください。
次の手順を実行します。
- Quick Suite コンソールを開きます。
- アプリケーションバーでユーザー名を選択し、[Quick Suite の管理] を選択します。
- ナビゲーションペインの [アクセス許可] で [AWS リソース] を選択します。
- サポートされているデータソースへのアクセスを設定します。
AWS Organizations を使用している場合、必要なサービスコントロールポリシーが割り当てられていない場合にエラーが発生します。Organizations 管理者に、SCP 設定で割り当てられているアクセス許可の検証を依頼してください。
Organizations 管理者である場合は、「サービスコントロールポリシーを更新する」を参照してください。
Quick Suite サービスロールが、AWS マネージド KMS キーへのアクセスを許可されていない
次のエラーが発生します。
"If you are encrypting query results with KMS key, please ensure you are allowed to access your KMS key."
Quick Suite サービスロールに正しい AWS KMS キーのアクセス許可があることを確認するには、次の手順を実行します。
- AWS Identity and Access Management (IAM) コンソールを使用して Quick Suite サービスロールの ARN を特定します。
- Amazon Simple Storage Service (Amazon S3) コンソールを使用して AWS KMS キー ARN を特定します。データファイルを含むバケットに移動します。[概要] タブを選択し、AWS KMS キーの ID を特定します。
- AWS CLI コマンド create-grant を実行し、Quick Suite サービスロールの ARN を AWS KMS キーポリシーに追加します。
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 を Quick Sight サービスロールの ARN に置き換えます。
サポートされていないデータ型または関数を使用した
サポートされていないデータ型をインポートしようとしたか、サポートされていない SQL 関数を使用した場合、SQL 例外エラーが発生します。この問題を解決するには、SQL データソースをチェックして、データ型または SQL 関数がサポートされているかどうかを確認してください。
サポートされているものについては、次のリソースを確認してください。
関連情報
Quotas for direct SQL queries (直接 SQL クエリに対するクォータ)
Amazon Quick Suite からプライベートサブネットにある Amazon RDS DB インスタンスまたは Amazon Redshift クラスターへのプライベート接続を作成する方法を教えてください
Actions, resources, and condition keys for Amazon Quick Suite (Amazon Quick Suite のアクション、リソース、条件キー)