我最近开始将部分BigQuery视图转换为Legacy SQL中的标准SQL。
到目前为止,它一直很顺利。所有视图都可以完美运行,甚至是连接到其他视图的视图。
我遇到的问题是当我尝试通过可视化程序连接到我的一个视图时,我收到以下错误: " 达到了视图分辨率或安全过滤器应用程序的最大迭代次数 "
当我的视图在Legacy SQL中编码时,我从未遇到过这个错误。所以基本上,唯一改变的是转换为标准SQL,现在是错误。
我发现它特别奇怪,因为视图都运行没有错误并产生扁平表。只有在我尝试通过Google脚本将视图转换为表格时,或者当我尝试通过可视化程序连接到视图时,才会出现错误。
非常感谢任何帮助。
此致 Franscois
答案 0 :(得分:0)
我一直在研究类似的问题。这是为了获取有关信息量最少的错误消息。 Google支持人员告知我们,当您超过8个嵌套视图时会出现此错误。
但是,在标准SQL中,该数字不再基于最大视图深度,而是基于视图遍历的总和。例如,如果您有一个引用视图的视图,它引用一个表,那就是2.如果在该视图中,您引用两个引用表的视图,那么4,如果您有5个其中,那10个,你的查询被杀死了。
您还没有在问题中包含您对该视图的查询,但是它是否引用了其他视图?
如果是这样,我建议您直接在视图中查看这些视图中的查询,然后重试。或者只是删除其他一些观点。
是的,这是一个完全苛刻的解决方案,但它是迄今为止我们提供给我们的最佳解决方案。
答案 1 :(得分:0)
BigQuery最多支持八个级别的嵌套视图
查看有关Views
的更多详情