如何解决 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(s)(相关视图)。记下位于分析左侧窗格中的数据集,然后查看数据集的 Summary(摘要)。

解决方法

**注意:**如果您在运行 AWS 命令行界面 (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 中与资源关联的网络安全组。有关更多信息,请参阅 Connecting to a VPC with Amazon QuickSight

您的 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 密钥 ARN。转到包含您的数据文件的存储桶。选择 Overview(概述)选项卡,然后找到 AWS KMS 密钥 ID。
  3. 运行 AWS CLI 命令 create-grant,将 QuickSight 服务角色 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 替换为您的 QuickSight 服务角色的 ARN。

您使用了不支持的数据类型或函数

如果您尝试导入不支持的数据类型或使用不支持的 SQL 函数,则会收到 SQL 异常错误。要解决此问题,请检查 SQL 数据来源以确定是否支持该数据类型或 SQL 函数。

要查看支持的内容,请查看以下资源:

相关信息

直接 SQL 查询的限额

如何创建从 Amazon QuickSight 到私有子网中的 Amazon Redshift 集群或 Amazon RDS 数据库实例的私有连接?

Amazon QuickSight 的操作、资源和条件键

AWS 官方
AWS 官方已更新 2 个月前