数据集位置

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

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

主要概念

位置或区域类型

BigQuery 使用两种类型的位置:

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

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

数据集位置

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

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
下表列出了可使用 BigQuery 的亚太区域。
区域说明 区域名称 详情
德里 asia-south2
香港 asia-east2
雅加达 asia-southeast2
墨尔本 australia-southeast2
孟买 asia-south1
大阪 asia-northeast2
首尔 asia-northeast3
新加坡 asia-southeast1
悉尼 australia-southeast1
台湾 asia-east1
东京 asia-northeast1
下表列出了可使用 BigQuery 的欧洲区域。
区域说明 区域名称 详情
比利时 europe-west1 叶形图标 二氧化碳排放量低
芬兰 europe-north1 叶形图标 二氧化碳排放量低
法兰克福 europe-west3
伦敦 europe-west2
荷兰 europe-west4
华沙 europe-central2
苏黎世 europe-west6 叶形图标 二氧化碳排放量低

多区域

下表列出了可使用 BigQuery 的多区域。
多区域说明 多区域名称
欧盟成员国的数据中心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 外部表查询 Cloud Storage 中的数据时,您查询的数据必须与 BigQuery 数据集位于同一位置。例如:
      • 单区域:如果您的 BigQuery 数据集位于华沙(“europe-central2”)区域,则相应的 Cloud Storage 存储桶也必须位于华沙区域,因为目前没有包含华沙的 Cloud Storage 双区域。
      • 双区域:如果您的 BigQuery 数据集位于东京(“asia-northeast1”)区域,则相应的 Cloud Storage 存储桶必须是位于东京区域或“ASIA1”双区域(包含东京)的存储桶。
      • 多区域:由于外部查询性能取决于最短延迟时间和最佳网络带宽,因此建议将包含多区域 Cloud Storage 存储桶的多区域数据集位置用于外部表。
      查看支持的 Cloud Storage 位置
    • Cloud Bigtable:通过 BigQuery 外部表查询 Cloud Bigtable 中的数据时,您的 Cloud Bigtable 实例必须位于 BigQuery 数据集所在的相同位置。
      • 单区域:如果您的 BigQuery 数据集位于比利时 (europe-west1) 单区域位置,则相应的 Cloud Bigtable 实例必须位于比利时区域。
      • 多区域:因为外部查询性能取决于最小延迟时间和最佳网络带宽,所以建议对 Cloud Bigtable 上的外部表使用多区域数据集位置。
      查看支持的 Cloud Bigtable 位置
    • Google 云端硬盘:位置注意事项不适用于 Google 云端硬盘外部数据源。
  • 共置 Cloud Storage 存储分区,以便于加载数据。
    • 如果您的 BigQuery 数据集位于多区域,则包含您要加载的数据的 Cloud Storage 存储桶必须位于同一多区域或该多区域内的位置。例如,如果您的 BigQuery 数据集位于“EU”多区域,则 Cloud Storage 存储桶可以位于欧盟内的“europe-west1”比利时区域。
    • 如果您的数据集位于某个区域,则 Cloud Storage 存储桶必须位于同一区域。例如,如果您的数据集位于“asia-northeast1”东京区域,则 Cloud Storage 存储桶不能位于“ASIA”多区域。
    • 例外情况:如果您的数据集位于“US”多区域,则您可以从任何位置的 Cloud Storage 存储桶加载数据。
  • 共置 Cloud Storage 存储分区,以导出数据。
    • 如果您的 BigQuery 数据集位于多区域,则包含您要导出的数据的 Cloud Storage 存储桶必须位于同一多区域或该多区域内的位置。例如,如果您的 BigQuery 数据集位于“EU”多区域,则 Cloud Storage 存储桶可以位于欧盟内的“europe-west1”比利时区域。
    • 如果您的数据集位于某个区域,则 Cloud Storage 存储桶必须位于同一区域。例如,如果您的数据集位于“asia-northeast1”东京区域,则 Cloud Storage 存储桶不能位于“ASIA”多区域。
    • 例外情况:如果您的数据集位于“US”多区域,则您可以将数据导出到任何位置的 Cloud Storage 存储桶。
  • 制定数据管理计划。
    • 如果您选择区域存储资源(如 BigQuery 数据集或 Cloud Storage 存储分区),请制定按地理位置管理数据的计划。

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

限制位置

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

数据集安全性

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

后续步骤