我想在 Amazon QuickSight 中联接数据来源,但我遇到了问题。
简短描述
以下是一些常见情形,可能会导致您无法在 Amazon QuickSight 中联接不同来源的数据:
- 在 Edit dataset(编辑数据集)页面上看不到 Add data(添加数据)按钮和网格面板。
- 您使用的是地理字段。
- 您正在尝试通过两个 Amazon 数据集来创建第三个数据集。
- QuickSight 已耗尽联接内存。
- 您收到“duplicate column(重复列)”或“ambiguous column(模糊列)”错误。
解决方法
在 Edit dataset(编辑数据集)页面上看不到 Add data(添加数据)按钮和网格面板。
如果看不到 Add data(添加数据)按钮和编辑面板,则必须向数据集所有者请求对数据来源的访问权限。
如果您自己拥有该数据集并希望与其他用户共享该数据集,请完成以下步骤:
- 打开 Amazon QuickSight 控制台。
- 选择 Datasets(数据集),然后选择 New dataset(新建数据集)。
- 选择要共享的数据集。
- 选择 Share data source(共享数据来源),然后选择 Invite users(邀请用户)。
- 输入用户名称和所需的权限。
- 选择 Share(共享)。
要向数据集添加更多数据,请执行以下操作:
- 打开要向其添加数据的数据集,然后选择 Edit dataset(编辑数据集)。
- 在 Data preparation(数据准备)页面上,选择 Add data(添加数据)。
- 选择要添加数据的方式。您可以从数据集、数据来源添加数据,也可通过上传文件来添加数据。
**注意:**您也可以选择 Use Custom SQL(使用自定义 SQL)打开查询编辑器,然后为 SQL 数据来源编写查询。
- 选择红点以配置联接。
- 选择首选联接类型:Inner(内连接)、Left(左外连接)、Right(右外连接)或 Full(完全外连接)。
- 选择 Apply(应用)。
您使用的是地理字段
联接界面中不支持地理字段。要解决此问题,您可以执行以下操作:
- 将数据类型从 Geospatial(地理空间)更改为 String(字符串)。
- 应用您的首选联接类型。
- 返回数据集页面,然后选择该数据集。
- 选择 Use in a new Dataset(在新数据集中使用),可在父数据集中创建新的子数据集。
- 将字段类型改回 Geospatial(地理空间)。
- 选择 Save(保存)。
您正在尝试通过两个数据集来创建第三个数据集
您无法联接两个数据集,以致不能创建第三个数据集。
但是,对于 Amazon Athena 数据集,您可以执行以下操作:
- 通过联接两个表在 Athena 中编写查询,然后创建一个视图。
- 在视图上创建一个 Athena 数据来源。
- 编写自定义 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(模糊列)”错误,请指定联接列名称,并以表名或别名作为限定词。