如何解決在 QuickSight 中使用自訂 SQL 資料來源時的 SQL 例外錯誤?

2 分的閱讀內容
0

我嘗試在 Amazon QuickSight 中使用自訂 SQL 資料來源,但收到錯誤消息 "Your database generated a SQL exception"。

簡短說明

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

由於下列原因,您可能會收到上述的錯誤訊息:

  • 查詢逾時。
  • 與資料來源的虛擬私有雲端 (VPC) 連線出現問題。
  • 您的 QuickSight 帳戶沒有存取資料的許可。
  • 您的 QuickSight 服務角色沒有存取 AWS 受管金鑰管理服務 (AWS KMS) 金鑰的許可。
  • 您使用了不受支援的資料類型或函數。

如需關於造成錯誤之原因的詳細資訊,請選擇錯誤訊息下方的 Show Details (顯示詳細資訊)。

如果您在重新整理資料集時收到上述的錯誤訊息,則可以在資料集的 Summary (摘要) 下找到有關錯誤的詳細資訊。如需詳細資訊,請選擇 Status Import Failed (狀態匯入失敗)。

如果儀表板上顯示上述的錯誤訊息,請導覽至 Underlying analysis (基礎分析),然後選擇 Concerned visual (相關視覺效果)。請注意位於分析左窗格上的資料集,然後檢視資料集的 Summary (摘要)。

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,則請參閱對 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 中的網路安全群組。如需詳細資訊,請參閱使用 Amazon QuickSight 連線至 VPC

您的 QuickSight 帳戶沒有存取資料的權限

如果您嘗試存取 AWS 服務中的資料時遇到 SQL 例外錯誤,請檢查 QuickSight 安全性和權限設定。

請完成下列步驟:

  1. 開啟 QuickSight 主控台
  2. 選擇 Manage QuickSight (管理 QuickSight)。
  3. 選擇安全和許可
  4. 設定存取您使用的支援資料來源

如果您使用 AWS Organizations,則在未指派必要的服務控制政策 (SCP) 給您時會收到錯誤。請 Organizations 管理員驗證 SCP 設定中指派給您的權限。

如果您是 Organizations 管理員,請參閱更新服務控制政策 (SCP)

您的 QuickSight 服務角色沒有存取 AWS 受管 KMS 金鑰的權限

如果您收到下列錯誤訊息:

"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 key ARN。前往包含資料檔案的儲存貯體。選擇 Overview (概觀) 索引標籤,然後找到 AWS KMS key ID。
  3. 執行 create-grant AWS CLI 命令,將 QuickSight 服務角色 ARN 新增至 AWS KMS key 政策:
    aws kms create-grant --key-id aws_kms_key_arn --grantee-principal quicksight_role_arn --operations Decrypt
    **注意:**使用 AWS KMS key 的 ARN 取代 aws_kms_key_arn,並使用 QuickSight 服務角色的 ARN 取代 quicksight_role_arn

您使用不受支援的資料類型或函數

如果您嘗試匯入不受支援的資料類型或使用不受支援的 SQL 函數,則會收到 SQL 例外錯誤。若要解決此問題,請檢查 SQL 資料來源,以確定資料類型或 SQL 函數是否受支援。

若要查看支援的內容,請檢查下列資源:

相關資訊

直接 SQL 查詢的配額

如何建立從 Amazon QuickSight 到私有子網路中 Amazon Redshift 叢集或 Amazon RDS 資料庫執行個體的私人連線?

Amazon QuickSight 的動作、資源和條件金鑰

AWS 官方
AWS 官方已更新 5 個月前