保存视图无法在 Google BigQuery 中创建有效的输出架构

Posted

技术标签:

【中文标题】保存视图无法在 Google BigQuery 中创建有效的输出架构【英文标题】:Saving a view fails to create a valid output schema in Google BigQuery 【发布时间】:2016-03-17 13:58:22 【问题描述】:

我正在尝试保存连接 BigQuery 中两个表的查询的视图。以下是这些表的简化架构。

在 BigQuery 界面中运行以下查询返回我期望的结果

SELECT * 
FROM [dataset_name.table1] as t1 
JOIN [dataset_name.table2] as t2 
ON t1.primaryEmail = t2.user_email

然后,点击按钮保存视图会返回以下错误:

Failed to save view. Cannot create valid output schema for field organizations.description.
Try renaming organizations.description to t1.organizations.description in the outermost SELECT.

重命名最外层选择中的字段似乎很痛苦,因为我可能必须在同一个选择中指定两个表的所有字段(很多)。

我错过了关于视图的某些内容吗?

编辑 1: 我设法通过指定 SELECT 中的所有字段并仅为记录子字段添加 t1.organizations.xxx AS t1.organizations.xxx(根据错误的建议)创建了一个视图: p>

SELECT
t1.primaryEmail, 
t1.suspended, 
t1.name.familyName, 
t1.name.fullName, 
t1.name.givenName, 
t1.organizations.name as t1.organizations.name, 
t1.organizations.title as t1.organizations.title, 
t1.organizations.primary as t1.organizations.primary,
t2.report_date
FROM [dataset_name.table1] t1 JOIN [dataset_name.table2] t2 ON t1.primaryEmail = t2.user_email

它创建了一个带有额外不需要的记录字段的视图t1

【问题讨论】:

作为指定所有字段的痛苦过程的解决方法 - 您可以使用 BigQuery Mate 中的添加字段按钮。我为这种情况介绍了它。导航到相应表的架构,添加字段按钮将显示在查询表按钮附近。这里也支持表格别名 在你的扩展的帮助下,我设法得到了非常接近我想要的东西,但这最终对我没有帮助,因为我希望能够从 python API 客户端创建我的视图图书馆。不过,我可能会找到类似的解决方法。嗯…… 至少拥有您的架构会帮助您。有简化的例子(edit1)也会有帮助:o) 我编辑了我的帖子,希望它能让情况更清楚。 看起来视图拒绝根中的重复字段 - 您是否关心在架构中保留重复的字段,或者您可以将其展平? 【参考方案1】:

您还可以使用group by 使每条记录都独一无二,从而可以将其转换为视图。

【讨论】:

以上是关于保存视图无法在 Google BigQuery 中创建有效的输出架构的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Google bigquery 中为多个动态表创建授权视图?

在 BigQuery 中回填 Google Analytics

使用 Apps 脚本定义/创建 BigQuery 保存视图的 SQL 查询

Google BigQuery:将查询结果保存到表时找不到数据集

无法创建视图 - BigQuery

如何从 Google App Script 中的文件运行保存的 Big Query 脚本? [关闭]