有没有办法确定或指定 BigQuery 将数据存储在哪个地理区域?

Is there a way to determine or specify what geo region BigQuery stores data in?

有没有办法确定 BigQuery 将我的数据存储在哪个区域 (like these)?更重要的是,有没有一种方法可以指定将我的数据发送到 BigQuery 时的存储位置?如果重要的话,我同时使用 POST 方法来批量加载数据和流式传输。

如果这两个问题的答案都是"no", BQ 在哪里存储数据?它只在美国,其他地方......还是遍布全球?

注意:本post中的所有内容均应视为指南而非保证。如有疑问,请参阅 BigQuery 服务条款,其中将更详细地说明有关数据位置的保证内容。

默认情况下,BigQuery 将您的数据存储在 us-central1us-central2 中。如果您希望 BigQuery 数据接近您的计算(即 GCE),您应该将您的计算移动到这些区域之一。

BigQuery 位置信息在数据集上。目前存在三个可能的值:US、EU 和未指定。如果是美国,数据位于美国(us-central1us-central2),欧盟,数据位于欧盟(europe-west1,尽管额外的副本可能存储在其他地方欧盟)。如果不指定,目前相当于存放在美国。

您可以通过执行 datasets.get() 操作来查看,您可以通过 bq 命令行客户端通过以下方式执行此操作:

bq --format=prettyjson show publicdata:samples | grep location

注意location默认是空的,也就是未指定location

创建数据集时必须设置位置;它也只是(目前)一组白名单客户可以设置他们的数据集位置。