Looker Studio中使用含EXECUTE IMMEDIATE的BigQuery自定义查询时,数据集位置不匹配错误求助
Looker Studio中使用含EXECUTE IMMEDIATE的BigQuery自定义查询时,数据集位置不匹配错误求助
我来帮你搞定这个问题!你遇到的核心问题是Looker Studio调用BigQuery自定义查询时,默认的会话位置和你的数据集位置不匹配,而EXECUTE IMMEDIATE会直接继承这个默认位置,导致它跑到US区域去找你在europe-west6的数据集,自然就找不到了。
之前你了解的那种在BigQuery控制台设置位置的方法,在Looker Studio里确实用不了,但咱们可以在自定义查询本身里指定会话位置,操作起来很简单:
- 在你的自定义查询最顶部,先加一行设置会话位置的语句,把位置改成你的数据集所在的
europe-west6 - 然后再紧跟你的
EXECUTE IMMEDIATE逻辑就行
给你一个可以直接复用的示例:
SET @@session.location = 'europe-west6'; EXECUTE IMMEDIATE 'SELECT * from `myProject.myDataset.accounts`';
原理其实很直白:SET @@session.location这条语句会把当前BigQuery会话的区域强制设置成和你的数据集一致,这样后面的EXECUTE IMMEDIATE就会在正确的区域里查找数据集,不会再默认去US区域瞎找了。
哪怕你后面要写更复杂的动态查询(比如你提到的需要动态切换数据源的场景),只要把这行设置位置的代码放在最开头,就不会再出现位置不匹配的错误啦。
备注:内容来源于stack exchange,提问作者Aldo
相关产品推荐
相关产品推荐

