保存视图无法在 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 查询