我嘗試在 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) 金鑰的權限。
- 您使用了不支援的資料類型或函數。
**注意:**如需更多有關錯誤原因的資訊,請在錯誤訊息下方選擇 Show Details (顯示詳細資訊)。
如果您在重新整理資料集時收到前述錯誤訊息,則可以在資料集的 Summary (摘要) 下方找到錯誤詳細資訊。選擇 Status Import Failed (狀態匯入失敗) 以取得更多資訊。
如果前述錯誤訊息顯示在您的儀表板上,請前往 Underlying analysis (基礎分析),然後選擇 Concerned visual(s) (相關視覺效果)。記下分析左側窗格中的資料集,然後檢視資料集的 Summary (摘要)。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (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 中的網路安全群組。如需更多資訊,請參閱設定 Amazon Quick Suite 中的 VPC 連線。
您的 Quick Suite 帳戶沒有存取資料的權限
如果您在嘗試存取 AWS 服務中的資料時遇到 SQL 例外狀況錯誤,請檢查您的 Quick Suite 對 AWS 服務的存取權限。
請完成以下步驟:
- 開啟 Quick Suite console (Quick Suite 主控台)。
- 在應用程式列上選擇您的使用者名稱,然後選擇 Manage Quick Suite (管理 Quick Suite)。
- 在導覽窗格中的 Permissions (權限) 下,選擇 AWS resources (AWS 資源)。
- 設定對支援資料來源的存取權限。
如果您使用 AWS Organizations,則當系統未將必要的服務控制政策 (SCP) 指派給您時,您會收到此錯誤。請要求 Organizations 管理員驗證在 SCP 設定中指派給您的權限。
如果您是 Organizations 管理員,請參閱更新服務控制政策 (SCP)。
您的 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。前往包含您資料檔案的儲存貯體。選擇 Overview (概觀) 索引標籤,然後找出 AWS KMS 金鑰 ID。
- 執行 create-grant AWS CLI 命令,將 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 函數。
若要查看支援內容,請查看以下資源:
相關資訊
直接 SQL 查詢的配額
如何從 Amazon Quick Suite 建立私有連線,以連接至位於私有子網路中的 Amazon Redshift 叢集 Amazon RDS 資料庫執行個體?
Amazon Quick Suite 的動作、資源和條件索引鍵