Google cloud platform Google Bigquery:如果两个外部表中有一个是空的,那么它们的连接就会失败

Google cloud platform Google Bigquery:如果两个外部表中有一个是空的,那么它们的连接就会失败,google-cloud-platform,google-bigquery,Google Cloud Platform,Google Bigquery,我在BiqQuery中有两个外部表,它们是在Google云存储上的JSON文件之上创建的。第一个是事实表,第二个是错误数据,它可能是空的,也可能不是空的 我可以单独查询每个表,即使是空表也可以,下面是一个示例 如果它们都不是空的,我也可以左键加入它们。 但是,如果errors表为空,则我的查询将失败,并出现以下错误: 查询指定了一个或多个联合数据源,但未扫描所有联合数据源。它通常表示不正确的uri规范或联邦数据源联合上的“limit”子句,这些联合数据源在不必读取所有源的情况下都得到满足 这种情

我在BiqQuery中有两个外部表,它们是在Google云存储上的JSON文件之上创建的。第一个是事实表,第二个是错误数据,它可能是空的,也可能不是空的

我可以单独查询每个表,即使是空表也可以,下面是一个示例 如果它们都不是空的,我也可以左键加入它们。 但是,如果errors表为空,则我的查询将失败,并出现以下错误:

查询指定了一个或多个联合数据源,但未扫描所有联合数据源。它通常表示不正确的uri规范或联邦数据源联合上的“limit”子句,这些联合数据源在不必读取所有源的情况下都得到满足

这种情况在文档中的任何地方都没有涉及,也与版本控制问题无关-

我宁愿避免将这两个表中的任何一个转换为本机表,因为它们只在ETL过程的一个步骤中使用,并且这些数据随后会被删除。其中一个是空的看起来并不是一个例外情况,因为普通的select工作得很好

有可能采取一些变通办法吗


UPD:向谷歌提出了一个问题,正在等待回应-

这感觉像是一个bug。一种解决方法是使用脚本避免查询空表:

声明为\u外部\u表\u空布尔默认值 选择0=从外部表格中选择计数*; -当“外部”为“表”为“空”时,请以不同方式执行操作 如果是外部表格,则为空=真 然后 其他的 如果结束
谢谢你的解决方案!我已经向谷歌提出了一个问题,如果他们确认这确实是一个bug,我会拒绝你的回答。