BigQuery 无法读取位置:亚洲

BigQuery Cannot read in location: asia

我正在尝试查询存储桶所在的联合 table

Multi-region    
asia (multiple regions in Asia)

。 BigQuery 数据集信息

Data location:  
asia-south1

当我 运行 一个简单的 select * from ... 我得到:

无法读取位置:亚洲

您遇到此错误是因为您的存储桶是多区域的,而您的 BigQuery 数据集是区域性的。 general rule for location consideration是外部数据和数据集应该在同一个位置。

截至目前,multi region BigQuery dataset 适用于美国和欧盟。因此,将亚洲多区域用于外部 table 时会出现错误。要解决此问题,您可以:

  • 在 asia-south1 中创建一个新的桶。使用 Cloud Storage Transfer service 将文件从旧存储桶传输到新存储桶。然后在asia-south1中也创建数据集,应该可以无误查询。
  • 如果您真的想要在多区域设置中使用您的数据,您可以创建一个位于美国或欧盟的新存储桶和 BQ 数据集。只需将您的文件传输到新存储桶,您就可以执行查询。

注意:无法编辑存储桶的位置。创建存储桶时,您会永久定义其名称、地理位置以及它所属的项目。因此,上面提到的建议修复。