跳至内容

如何解决 Quick Suite 中自定义 SQL 数据来源的 SQL 异常错误?

2 分钟阅读
0

我尝试在 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 托管式密钥 Management Service (AWS KMS) 密钥的权限。
  • 您使用了不支持的数据类型或函数。

**注意:**有关导致错误的原因的详细信息,请在错误消息下选择 Show Details(显示详细信息)。

如果您在刷新数据集时收到上述错误消息,您可以在数据集的 Summary(摘要)下查找有关该错误的详细信息。选择 Status Import Failed(状态导入失败)以获取详细信息。

如果上述错误消息显示在控制面板上,请导航到 Underlying analysis(基础分析),然后选择 Concerned visual(s)(相关视图)。记下位于分析左侧窗格中的数据集,然后查看数据集的 Summary(摘要)。

解决方法

**注意:**如果您在运行 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."

-or-

"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 服务的访问权限。

完成以下步骤:

  1. 打开 Quick Suite 控制台
  2. 在应用程序栏上选择您的用户名,然后选择 Manage Quick Suite(管理 Quick Suite)。
  3. 在导航窗格的 Permissions(权限)下,选择 AWS resources(AWS 资源)。
  4. 配置对支持的数据来源的访问权限。

如果您使用 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 密钥权限,请完成以下步骤:

  1. 使用 AWS Identity and Access Management (IAM) 控制台找到 Quick Suite 服务角色的 ARN。
  2. 使用 Amazon Simple Storage Service (Amazon S3) 控制台查找 AWS KMS 密钥的 ARN。转到包含数据文件的存储桶。选择 Overview(概述)选项卡,然后找到 AWS KMS 密钥 ID。
  3. 运行 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 的操作、资源和条件键

AWS 官方已更新 7 个月前