如何解决在 QuickSight 中联接数据来源的问题?

上次更新日期:2022 年 7 月 20 日

我想在 Amazon QuickSight 中联接数据来源,但我遇到了问题。

简短描述

以下是一些常见情形,可能会导致您无法在 Amazon QuickSight 中联接不同来源的数据:

  • Edit dataset(编辑数据集)页面上看不到 Add data(添加数据)按钮和网格面板。
  • 您使用的是地理字段。
  • 您正在尝试通过两个 Amazon 数据集来创建第三个数据集。
  • QuickSight 已耗尽联接内存。
  • 您收到“duplicate column(重复列)”或“ambiguous column(模糊列)”错误。

解决方法

在 Edit dataset(编辑数据集)页面上看不到 Add data(添加数据)按钮和网格面板。

如果看不到 Add data(添加数据)按钮和编辑面板,则必须向数据集所有者请求对数据来源的访问权限。

如果您自己拥有该数据集并希望与其他用户共享该数据集,请完成以下步骤:

  1. 打开 Amazon QuickSight 控制台
  2. 选择 Datasets(数据集),然后选择 New dataset(新建数据集)。
  3. 选择要共享的数据集。
  4. 选择 Share data source(共享数据来源),然后选择 Invite users(邀请用户)。
  5. 输入用户名称和所需的权限。
  6. 选择 Share(共享)。

要向数据集添加更多数据,请执行以下操作:

  1. 打开要向其添加数据的数据集,然后选择 Edit dataset(编辑数据集)。
  2. Data preparation(数据准备)页面上,选择 Add data(添加数据)。
  3. 选择要添加数据的方式。您可以从数据集、数据来源添加数据,也可通过上传文件来添加数据。
    注意:您也可以选择 Use Custom SQL(使用自定义 SQL)打开查询编辑器,然后为 SQL 数据来源编写查询。
  4. 选择红点以配置联接。
  5. 选择首选联接类型:Inner(内连接)、Left(左外连接)、Right(右外连接)或 Full(完全外连接)。
  6. 选择 Apply(应用)。

您使用的是地理字段

联接界面中不支持地理字段。要解决此问题,您可以执行以下操作:

  1. 将数据类型从 Geospatial(地理空间)更改为 String(字符串)。
  2. 应用您的首选联接类型。
  3. 返回数据集页面,然后选择该数据集。
  4. 选择 Use in a new Dataset(在新数据集中使用),可在父数据集中创建新的子数据集。
  5. 将字段类型改回 Geospatial(地理空间)。
  6. 选择 Save(保存)。

您正在尝试通过两个数据集来创建第三个数据集

您无法联接两个数据集,以致不能创建第三个数据集。

但是,对于 Amazon Athena 数据集,您可以执行以下操作:

  1. 通过联接两个表在 Athena 中编写查询,然后创建一个视图。
  2. 在视图上创建一个 Athena 数据来源。
  3. 编写自定义 SQL,然后使用新的 Athena 数据来源在 QuickSight 中创建 Athena 数据集。

QuickSight 已耗尽联接内存

联接数据集时,其中一个数据集的大小必须在 1GB 以内。如果有多个数据集的容量大于 1GB,则 QuickSight 将耗尽内存。要解决此问题,请使用自定义 SQL 查询进行联接。

如果有大型表格联接,则最佳实践是在数据库中运行联接条件查询,然后创建表格或视图。然后,在 QuickSight 中从表格或视图中创建数据集。

有关更多信息,请参阅在 Amazon QuickSight 上跨数据来源联接

您收到“duplicate column(重复列)”或“ambiguous column(模糊列)”错误

您会收到以下“duplicate column(重复列)”错误:

ERROR - Duplicate column name 'column name

以下示例查询会导致出现“duplicate column(重复列)”错误:

select * from schema.sales, schema.date where sales.dateid = date.dateid;

您会收到以下“ambiguous column(模糊列)”错误:

ERROR - column reference "dateid" is ambiguous

以下示例查询会导致出现“ambiguous column(模糊列)”错误:

select sid, dateid from schema.sales, schema.date, schema.users where sales.sid = users.userid and dateid = dateid and year = 2010 and city = 'dallas';

如果常见列名不由表名或别名限定,则会出现“duplicate column(重复列)”和“ambiguous column(模糊列)”错误。要解决“duplicate column(重复列)”和“ambiguous column(模糊列)”错误,请指定联接列名称,并以表名或别名作为限定词。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?