【问题标题】:QuickSight cannot see cross-account Athena DBQuickSight 无法查看跨账户 Athena DB
【发布时间】:2021-03-23 14:44:03
【问题描述】:

我在 eu-west-1 的 account_a 中设置了 QuickSight。我正在尝试从 account_b 中的 Athena 查询。

我在 Athena 中有两个数据库 [一个是“默认”,另一个是另一个名称],都在同一个 AWS Glue 目录下。目录在 QuickSight 中显示为数据源,但没有任何数据库显示在 QuickSight 中,如下所示:

当我尝试使用自定义查询功能时,出现以下错误:

[Simba][AthenaJDBC](100071) An error has been thrown from the AWS Athena client. SYNTAX_ERROR: line 2:34: Schema default does not exist [Execution ID: **-**-**-**-**]

我正在运行的查询是:

select * from default.tablename;

在这一点上,我真的很困惑。我可以在这里采取哪些可能的措施?

【问题讨论】:

  • 我过去看到过一些问题,即 QuickSight 不支持 Athena 所做的一切。我不得不做一些事情,比如用额外的 IAM 权限更新 quicksight 服务角色才能让事情正常工作。由于我之前没有尝试过跨帐户共享,因此很难提出具体建议。

标签: aws-glue amazon-athena amazon-quicksight


【解决方案1】:

我今天遇到了类似的问题。我正在使用 Lake Formation 来处理 Glue Catalog 的权限。如果您也是这样,您可以按照本指南启动并运行:https://learnquicksight.workshop.aws/en/admin-level-up/data-lake-permissions.html

基本上,您授予 QuickSight ARN 从 Lake Formation 访问您的源数据库/表的权限。一旦获得批准,数据库将出现在 QuickSight 的 Athena 数据集中。

Lake Formation 还有助于跨账户共享数据资源。您可以在源账户和目标账户上启用 Lake Formation,并根据需要授予权限。这个视频很有用:https://www.youtube.com/watch?v=MJ9_hsCk52w

截至 2021 年 5 月,我遇到的一些关于 Lake Formation 的 UI 警告与这个问题没有直接关系,但可能会有所帮助:

在源帐户中,在新帐户中设置 Lake Formation 时:

  • 在数据目录 > 设置下,取消选中“仅使用 IAM ...”选项。这是为了向后兼容,新帐户不需要。
  • “数据湖位置”选项必须包含您的 S3 存储桶才能共享给其他账户,正是这些步骤提供了您的目标账户将承担的角色
  • 您可能希望通过 Glue 抓取您的表格。确保您已创建 Glue IAM 角色并通过 Lake Formation 向该角色授予权限。最低权限原则适用于 Glue IAM 角色,但您可以只使用“poweruser”访问权限进行测试。
  • 添加数据库/表后,您必须撤销要共享的每个数据库/表的“IAMAllowedPrincipals”,否则将失败。我认为这也是旧版 Glue 设置,可以安全地为新帐户移除。

在目标帐户中:

  • 您必须创建一个“资源链接”才能使用共享的数据库/表(请参阅视频以获取参考)。这可以通过以下方式完成:a)创建一个新的本地数据库并将新资源链接附加到新数据库......或
    • 您可以在数据库本身上创建资源链接...但是,我发现您必须从源帐户中手动复制粘贴名称,否则它不起作用(它没有自动填充共享数据库与共享表不同)。希望这是有道理的。这可能是一个很快就会修复的错误。

【讨论】:

    猜你喜欢
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    • 2021-06-07
    • 1970-01-01
    相关资源
    最近更新 更多