数据集位置

本页面介绍数据位置的概念以及可创建数据集的不同位置。如需了解如何设置数据集的位置,请参阅创建数据集

有关 BigQuery 区域价格的信息,请参阅价格页面。

主要概念

位置或区域类型

位置具有两种类型:

  • 单区域位置是具体的地理位置,如伦敦。

  • 多区域位置是至少包含两个地理位置的大型地理区域,如美国。

数据集位置

在创建数据集时,您可以指定一个位置以用于存储 BigQuery 数据。在创建数据集后,您无法更改该位置,但可以将数据集复制到其他位置,或手动将数据集移动到其他位置(在其他位置重新创建数据集)

BigQuery 在包含待查询表的数据集所在的位置处理查询。

BigQuery 根据服务专用条款将您的数据存储在选定位置。

支持的区域

单区域位置

区域说明 地区名称 备注
美洲
爱荷华 us-central1 叶形图标 二氧化碳排放量低
拉斯维加斯 us-west4
洛杉矶 us-west2
蒙特利尔 northamerica-northeast1 叶形图标 二氧化碳排放量低
北弗吉尼亚 us-east4
俄勒冈 us-west1 叶形图标 二氧化碳排放量低
盐湖城 us-west3
圣保罗 southamerica-east1 叶形图标 二氧化碳排放量低
圣地亚哥 southamerica-west1
南卡罗来纳 us-east1
多伦多 northamerica-northeast2
欧洲
比利时 europe-west1 叶形图标 二氧化碳排放量低
芬兰 europe-north1 叶形图标 二氧化碳排放量低
法兰克福 europe-west3
伦敦 europe-west2
荷兰 europe-west4
华沙 europe-central2
苏黎世 europe-west6 叶形图标 二氧化碳排放量低
亚太地区
德里 asia-south2
香港 asia-east2
雅加达 asia-southeast2
墨尔本 australia-southeast2
孟买 asia-south1
大阪 asia-northeast2
首尔 asia-northeast3
新加坡 asia-southeast1
悉尼 australia-southeast1
台湾 asia-east1
东京 asia-northeast1

多区域位置

多区域说明 多区域名称
欧盟成员国的数据中心1 EU
美国的数据中心 US

1 位于 EU 多区域的数据不会存储在 europe-west2(伦敦)或 europe-west6(苏黎世)数据中心中。

指定位置

在加载数据、查询数据或导出数据时,BigQuery 会根据请求中引用的数据集确定运行作业的位置。例如,如果查询引用了存储在 asia-northeast1 地区的数据集中的表,则查询作业将在该地区中运行。如果查询未引用数据集中的任何表或其他资源,并且未提供目标表,则查询作业将在 US 多区域中运行。如果项目在 US 以外的地区具有固定费率预留,并且查询未引用数据集中的任何表或其他资源,则您在提交作业时必须明确指定固定费率预留的位置。

您可以通过以下方式明确指定作业的运行位置:

  • 使用 Cloud Console 查询数据时,点击更多 > 查询设置,在处理位置处,点击自动选择并选择数据的位置。
  • 使用 bq 命令行工具时,请提供 --location 全局标志并将值设为您的位置。
  • 使用 API 时,在作业资源jobReference 部分的 location 属性中指定区域。

如果指定的位置与请求中的数据集位置不匹配,BigQuery 将返回错误。 请求中涉及的每个数据集的位置(包括从其中读取数据和向其中写入数据的位置)都必须与推断或指定的作业的位置一致。

单区域位置与多区域位置不一致,即使单区域位置与多区域位置相关联也是如此。因此,如果关联的位置集同时包含单区域位置和多区域位置,则作业一定会失败。例如,在作业的位置设置为 US 的情况下,如果作业引用了 us-central1 中的数据集,则该作业将失败。同样,如果作业引用了 US 中的一个数据集和 us-central1 中的另一个数据集,则该作业也将失败。

位置注意事项

在选择数据的位置时,请考虑以下事项:

  • 共置 BigQuery 数据集和外部数据源。
    • 在 Cloud Storage 等外部数据源中查询数据时,查询的数据必须与 BigQuery 数据集位于相同位置。例如,如果您的 BigQuery 数据集位于欧盟多区域位置,则包含您要查询的数据的 Cloud Storage 存储分区必须位于欧盟的某个多区域存储分区中。如果您的数据集位于美国多区域位置,则您的 Cloud Storage 存储分区必须位于美国的某个多区域存储分区中。
    • 如果您的数据集位于单区域位置,则包含您要查询的数据的 Cloud Storage 存储分区必须位于同一位置的单区域存储分区中。例如,如果您的数据集位于东京区域,则您的 Cloud Storage 存储分区必须是位于东京的区域存储分区。
    • 如果外部数据集位于 Cloud Bigtable 中,则您的数据集必须位于 US 或 EU 多区域位置。您的 Cloud Bigtable 数据必须位于受支持的 Cloud Bigtable 位置之一。
    • 位置注意事项不适用于 Google 云端硬盘外部数据源。
  • 共置 Cloud Storage 存储分区,以加载数据。
    • 如果您的 BigQuery 数据集位于多区域位置,则包含您要加载的数据的 Cloud Storage 存储分区必须位于同一位置的区域或多区域存储分区中。例如,如果您的 BigQuery 数据集位于 EU,则 Cloud Storage 存储分区必须位于 EU 的单区域或多区域存储分区中。
    • 如果您的数据集位于单区域位置,则您的 Cloud Storage 存储分区必须是同一位置的单区域存储分区。例如,如果您的数据集位于东京区域,则您的 Cloud Storage 存储分区必须是位于东京的单区域存储分区。
    • 例外情况:如果您的数据集位于 US 多区域位置,则可以从任何区域或多区域位置的 Cloud Storage 存储分区加载数据。
  • 共置 Cloud Storage 存储分区,以导出数据。
    • 导出数据时,单区域或多区域 Cloud Storage 存储分区必须与 BigQuery 数据集位于相同位置。例如,如果您的 BigQuery 数据集位于欧盟多区域位置,则包含您要导出数据的 Cloud Storage 存储分区也必须位于欧盟的单区域或多区域位置。
    • 如果您的数据集位于单区域位置,则您的 Cloud Storage 存储分区必须是同一位置的单区域存储分区。例如,如果您的数据集位于东京区域,则您的 Cloud Storage 存储分区必须是位于东京的单区域存储分区。
    • 例外情况:如果您的数据集位于 US 多区域位置,则可以将数据导出到任何单区域或多区域位置的 Cloud Storage 存储分区中。
  • 制定数据管理计划。
    • 如果您选择区域存储资源(如 BigQuery 数据集或 Cloud Storage 存储分区),请制定按地理位置管理数据的计划。

如需详细了解 Cloud Storage 位置,请参阅 Cloud Storage 文档中的存储分区位置

限制数据集位置

您可以使用组织政策服务来限制可以创建数据集的位置。如需了解详情,请参阅限制资源位置支持资源位置的服务

数据集安全性

如需控制对 BigQuery 中数据集的访问权限,请参阅控制对数据集的访问权限。 如需了解数据加密,请参阅静态加密

后续步骤