BigQuery 位置

本页面介绍了“位置”概念以及可以存储和处理数据的不同区域。 存储和分析的价格也由数据和预留的位置定义。如需详细了解位置的价格,请参阅 BigQuery 价格。如需了解如何设置数据集的位置,请参阅创建数据集。如需了解预留位置,请参阅管理不同区域的预留

如需详细了解 BigQuery Data Transfer Service 如何使用位置,请参阅数据位置和转移

位置和区域

BigQuery 提供两种类型的数据和计算位置:

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

  • 多区域位置是至少包含两个区域的大型地理区域,如美国。与单区域相比,多区域位置可提供更高的配额。

无论哪种位置类型,BigQuery 都会自动将数据副本存储在所选位置中一个区域内的两个不同 Google Cloud 可用区中。如需详细了解数据可用性和耐用性,请参阅可靠性:灾难恢复计划

支持的位置

BigQuery 数据集可以存储在以下单区域和多区域中。如需详细了解地区和区域,请参阅地理位置和地区

区域

下表列出了可使用 BigQuery 的美洲区域。
区域说明 区域名称 详细信息
俄亥俄州,哥伦布 us-east5
达拉斯 us-south1
爱荷华 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-west10
芬兰 europe-north1 叶形图标 二氧化碳排放量低
法兰克福 europe-west3 叶形图标 二氧化碳排放量低
伦敦 europe-west2 叶形图标 二氧化碳排放量低
马德里 europe-southwest1
米兰 europe-west8
荷兰 europe-west4
巴黎 europe-west9 叶形图标 二氧化碳排放量低
都灵 europe-west12
华沙 europe-central2
苏黎世 europe-west6 叶形图标 二氧化碳排放量低
下表列出了提供 Dataflow 的中东区域。
区域说明 区域名称 详细信息
达曼 me-central2
多哈 me-central1
特拉维夫 me-west1
下表列出了可使用 BigQuery 的非洲区域。
区域说明 区域名称 详细信息
约翰内斯堡 africa-south1

多区域

下表列出了可使用 BigQuery 的多区域。
多区域说明 多区域名称
欧盟成员国的数据中心1 EU
美国的数据中心 US

1 位于 EU 多区域的数据仅存储在 europe-west1(比利时)或 europe-west4(荷兰)数据中心中。

BigQuery Omni 位置

BigQuery Omni 会在包含待查询表的数据集所在的位置处理查询。创建数据集后,该位置无法更改。 您的数据位于您自己的 AWS 或 Azure 账号中。BigQuery Omni 区域支持企业版预留和按需计算(分析)价格。如需详细了解版本,请参阅 BigQuery 版本简介
区域说明 区域名称 共置 BigQuery 区域
AWS
AWS - 美国东部(北弗吉尼亚) aws-us-east-1 us-east4
AWS - 美国西部(俄勒冈) aws-us-west-2 us-west1
AWS - 亚太地区(首尔) aws-ap-northeast-2 asia-northeast3
AWS - 欧洲(爱尔兰) aws-eu-west-1 europe-west1
Azure
Azure - 美国东部 2 azure-eastus2 us-east4

BigQuery ML 位置

BigQuery ML 将数据处理并暂存到包含数据的数据集所在的位置。

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

所有 BigQuery 区域都支持 BigQuery ML 模型预测和其他机器学习函数。对模型训练的支持因区域而异:

  • 所有 BigQuery 区域都支持训练内置模型(线性回归、逻辑回归、kmeans、矩阵分解和时间序列)和导入的模型。

  • 您可以在多区域 USEU 以及大多数单区域使用 XGBoost 模型进行 DNN 和提升树训练。如需了解详情,请参阅下表。

  • 多区域 USEU 以及大多数单区域支持 AutoML 训练。

非远程模型的位置

单区域位置
区域说明 区域名称 导入的
模型
内置
模型
训练
DNN/Autoencoder/
提升树/
Wide & Deep 模型
训练
AutoML
模型
训练
超参数
调节
Vertex AI Model Registry 集成
美洲
俄亥俄州,哥伦布 us-east5
达拉斯 us-south1
爱荷华 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-west10
芬兰 europe-north1
法兰克福 europe-west3
伦敦 europe-west2
马德里 europe-southwest1
米兰 europe-west8
荷兰 europe-west4
巴黎 europe-west9
都灵 europe-west12
华沙 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
中东
达曼 me-central2
多哈 me-central1
特拉维夫 me-west1
非洲
约翰内斯堡 africa-south1

多区域位置

区域说明 区域名称 导入的
模型
内置
模型
训练
DNN/Autoencoder/
提升树/
Wide & Deep 模型训练
AutoML
模型
训练
超参数
调节
Vertex AI Model Registry 集成
欧盟成员国的数据中心1 EU
美国的数据中心 US

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

只有单区域集成支持 Vertex AI Model Registry 集成。如果您将多区域 BigQuery ML 模型发送到 Model Registry,则它会转换为 Vertex AI 中的区域模型。BigQuery ML 多区域美国模型同步到 Vertex AI us-central1,BigQuery ML 多区域欧盟模型同步到 Vertex AI europe-west4。对于单区域模型,没有任何变化。

远程模型的位置

单区域位置
下表显示了不同类型的 [远程模型](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-create-remote-model)支持的区域。列名表示远程模型类型。
区域说明 区域名称 Vertex AI 部署的模型 文本生成 LLM 文本嵌入 LLM Cloud Natural Language API Cloud Translation API Cloud Vision API Document AI API Speech-to-Text API
美洲
俄亥俄州,哥伦布 us-east5
达拉斯 us-south1
爱荷华 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-southwest1
米兰 europe-west8
荷兰 europe-west4
巴黎 europe-west9
都灵 europe-west12
华沙 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
中东
达曼 me-central2
多哈 me-central1
特拉维夫 me-west1

多区域位置

下表显示了不同类型的 [远程模型](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-create-remote-model) 支持的多区域。列名表示远程模型类型。
区域说明 区域名称 Vertex AI 部署的模型 文本生成 LLM 文本嵌入 LLM Cloud Natural Language API Cloud Translation API Cloud Vision API Document AI API Speech-to-Text API
欧盟成员国的数据中心1 EU
美国的数据中心 US

指定位置

在加载数据、查询数据或导出数据时,BigQuery 会根据请求中引用的数据集确定运行作业的位置。例如,如果查询引用了存储在 asia-northeast1 区域的数据集中的表,则查询作业将在该区域运行。

如果查询未引用数据集中的任何表或其他资源,并且未提供目标表,则查询作业将在 US 多区域中运行。 如需确保 BigQuery 查询存储在特定区域或多区域中,请在使用全局 BigQuery 端点时通过作业请求指定位置来相应地路由查询。如果未指定位置,则当查询用于确定 BigQuery 中的处理位置时,查询可能会暂时存储在 BigQuery 路由器日志中。

如果项目US 以外的区域具有基于容量的预留,并且查询未引用数据集中的任何表或其他资源,则您在提交作业时必须明确指定基于容量的预留的位置。基于容量的承诺与位置相关联,例如 USEU。如果您在容量的位置之外运行作业,则该作业的价格会自动切换为按需价格。

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

  • 在 Google Cloud 控制台中使用查询编辑器查询数据时,点击 更多 > 查询设置,展开高级选项,然后选择您的数据位置
  • 使用 bq 命令行工具时,请提供 --location 全局标志并将值设为您的位置。
  • 使用 API 时,在作业资源jobReference 部分的 location 属性中指定区域。

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

单区域位置与多区域位置不一致,即使单区域位置包含在多区域位置中也是如此。因此,如果位置同时包含单区域位置和多区域位置,则查询或作业将失败。例如,在作业的位置设置为 US 的情况下,如果作业引用了 us-central1 中的数据集,则该作业将失败。同样,如果作业引用了 US 中的一个数据集和 us-central1 中的另一个数据集,则该作业也将失败。对于在单区域和多区域中均具有表的 JOIN 语句也是如此。

动态查询在执行之前不会被解析,因此它们不能用于自动确定查询的区域。

位置、预留和作业

容量承诺是区域级资源。购买槽时,这些槽仅限于特定区域或多区域。如果您的唯一容量承诺位于 EU 中,则您无法在 US 中创建预留。创建预留时,您需要指定位置(区域)和槽数。这些槽是从您所在区域的容量承诺中提取的。

同样,当您在某个区域中运行作业时,仅当作业的位置与预留的位置匹配时,它才会使用预留。例如,如果为 EU 中的项目分配预留,并对位于 US 的数据集中的项目运行查询,则不会对您的 EU 预留运行该查询。在没有任何 US 预留的情况下,作业将按需运行。

位置注意事项

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

Cloud Storage

您可以通过以下方式使用 BigQuery 与 Cloud Storage 数据交互:

查询 Cloud Storage 数据

使用 BigLake非 BigLake 外部表查询 Cloud Storage 中的数据时,您查询的数据必须与您的 BigQuery 数据集位于同一位置。例如:

  • 单区域存储桶:如果您的 BigQuery 数据集位于华沙 (europe-central2) 区域,则相应的 Cloud Storage 存储桶也必须位于华沙区域或任何包含华沙的 Cloud Storage 双区域。如果您的 BigQuery 数据集位于 US 多区域,则 Cloud Storage 存储桶可以位于 US 多区域、爱荷华州 (us-central1) 单区域或任何包含爱荷华州的双区域。来自任何其他单区域的查询都会失败,即使存储桶位于数据集的多区域包含的位置也是如此。例如,如果外部表位于 US 多区域,并且 Cloud Storage 存储桶位于俄勒冈州 (us-west1),则作业将失败。

    如果您的 BigQuery 数据集位于 EU 多区域,则 Cloud Storage 存储桶可以位于 EU 多区域、比利时 (europe-west1) 单区域或任何包含比利时的双区域。来自任何其他单区域的查询都会失败,即使存储桶位于数据集的多区域包含的位置也是如此。例如,如果外部表位于 EU 多区域,并且 Cloud Storage 存储桶位于华沙 (europe-central2),则作业将失败。

  • 双区域存储桶:如果您的 BigQuery 数据集位于东京 (asia-northeast1) 区域,则相应的 Cloud Storage 存储桶必须位于东京区域,或者包含东京的双区域(例如 ASIA1 双区域)。如需了解详情,请参阅创建双区域存储桶

    如果 Cloud Storage 存储桶位于 NAM4 双区域或任何包含爱荷华州 (us-central1) 区域的双区域,则相应的 BigQuery 数据集可以位于 US 多区域或爱荷华州 (us-central1)。

    如果 Cloud Storage 存储桶位于 EUR4 双区域或任何包含比利时 (europe-west1) 区域的双区域,则相应的 BigQuery 数据集可以位于 EU 多区域或比利时 (europe-west1)。

  • 多区域存储桶推荐将包含多区域 Cloud Storage 存储桶的多区域数据集位置用于外部表,因为外部查询性能取决于最小延迟和最佳网络带宽。

    如果您的 BigQuery 数据集位于 US 多区域,则相应的 Cloud Storage 存储桶必须位于 US 多区域、包含爱荷华州 (us-central1) 的双区域(例如 NAM4 双区域)或包含爱荷华州 (us-central1) 的自定义双区域。

    如果您的 BigQuery 数据集位于 EU 多区域,则相应的 Cloud Storage 存储桶必须位于 EU 多区域、包含比利时 (europe-west1) 的双区域(例如 EUR4 双区域)或包含比利时的自定义双区域。

如需详细了解受支持的 Cloud Storage 位置,请参阅 Cloud Storage 文档中的存储桶位置

从 Cloud Storage 加载数据

使用 BigLake 或非 BigLake 外部表从 Cloud Storage 加载数据时,您加载的数据必须与您的 BigQuery 数据集位于同一位置。

  • 如果您的 BigQuery 数据集位于 US 多区域,则您可以从位于任何位置的 Cloud Storage 存储桶加载数据。

  • 多区域存储桶:如果您要从中加载数据的 Cloud Storage 存储桶位于多区域存储桶,则您的 BigQuery 数据集可以位于同一多区域存储桶或同一多区域存储桶中包含的任何单区域。例如,如果 Cloud Storage 存储桶位于 EU 区域,则您的 BigQuery 数据集可以位于 EU 多区域或 EU 中的任何单区域。
  • 双区域存储桶:如果您要从中加载数据的 Cloud Storage 存储桶位于双区域存储桶,则您的 BigQuery 数据集可以位于该双区域存储桶中包含的区域,或包含该双区域的多区域。例如,如果您的 Cloud Storage 存储桶位于 EUR4 区域,则您的 BigQuery 数据集可以位于芬兰 (europe-north1) 单区域、荷兰 (europe-west4) 单区域或 EU 多区域。

    如需了解详情,请参阅创建双区域存储桶

  • 单区域存储桶:如果您要从中加载数据的 Cloud Storage 存储桶位于单区域,则您的 BigQuery 数据集可以位于同一单区域,或包含该单区域的多区域。例如,如果您的 Cloud Storage 存储桶位于芬兰 (europe-north1) 区域,则您的 BigQuery 数据集可以位于芬兰或 EU 多区域。

  • 一个例外情况是,如果您的 BigQuery 数据集位于 asia-northeast1 区域,则您的 Cloud Storage 存储桶可以位于 EU 多区域。

如需了解详情,请参阅批量加载数据

将数据导出到 Cloud Storage

共置 Cloud Storage 存储桶,以导出数据:
  • 如果您的 BigQuery 数据集位于 EU 多区域,则包含您所导出的数据的 Cloud Storage 存储桶必须位于同一多区域或该多区域内的位置。例如,如果您的 BigQuery 数据集位于 EU 多区域,则 Cloud Storage 存储桶可以位于欧盟内的 europe-west1 比利时区域。

    如果您的数据集位于 US 多区域,则您可以将数据导出到任何位置的 Cloud Storage 存储桶。

  • 如果您的数据集位于某个区域,则 Cloud Storage 存储桶必须位于同一区域。例如,如果您的数据集位于 asia-northeast1 东京区域,则您的 Cloud Storage 存储桶不能位于 ASIA 多区域。

如需了解详情,请参阅导出表数据

Bigtable

通过 BigQuery 外部表查询 Bigtable 中的数据时,您的 Bigtable 实例必须与 BigQuery 数据集位于同一位置。

  • 单区域:如果您的 BigQuery 数据集位于比利时 (europe-west1) 区域位置,则相应的 Bigtable 实例必须也位于比利时区域。
  • 多区域:因为外部查询性能取决于最小延迟时间和最佳网络带宽,所以建议对 Bigtable 上的外部表使用多区域数据集位置。

如需详细了解支持的 Bigtable 位置,请参阅 Bigtable 位置

Google 云端硬盘

位置注意事项不适用于 Google 云端硬盘外部数据源。

Cloud SQL

通过 BigQuery 联合查询查询 Cloud SQL 中的数据时,您的 Cloud SQL 实例必须与 BigQuery 数据集位于相同位置。

  • 单区域:如果您的 BigQuery 数据集位于比利时 (europe-west1) 区域位置,则相应的 Cloud SQL 实例必须也位于比利时区域。
  • 多区域:如果您的 BigQuery 数据集位于 US 多区域,则相应的 Cloud SQL 实例必须位于美国地理区域的单个区域中。

如需详细了解受支持的 Cloud SQL 位置,请参阅 Cloud SQL 位置

Spanner

通过 BigQuery 联合查询查询 Spanner 中的数据时,您的 Spanner 实例必须与 BigQuery 数据集位于同一位置。

  • 单区域:如果您的 BigQuery 数据集位于比利时 (europe-west1) 区域位置,则相应的 Spanner 实例必须也位于比利时区域。
  • 多区域:如果您的 BigQuery 数据集位于 US 多区域,则相应的 Spanner 实例必须位于美国地理区域的单个区域中。

如需详细了解支持的 Spanner 位置,请参阅 Spanner 位置

分析工具

使用分析工具共置 BigQuery 数据集:

数据管理计划

制定数据管理计划:
  • 如果您选择区域级存储资源(如 BigQuery 数据集或 Cloud Storage 存储桶),请制定按地理位置管理数据的计划。

限制位置

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

数据集安全性

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

后续步骤