Cloud Storage 转移作业概览

通过适用于 Cloud Storage 的 BigQuery Data Transfer Service,您可以安排从 Cloud Storage 到 BigQuery 的周期性数据加载作业。Cloud Storage 路径和目标表都可以参数化,以便您能够从按日期整理的 Cloud Storage 存储分区中加载数据。

支持的文件格式

BigQuery Data Transfer Service 目前支持以某一下列格式从 Cloud Storage 加载数据:

  • 逗号分隔值 (CSV)
  • JSON(以换行符分隔)
  • Avro
  • Parquet
  • ORC

支持的压缩类型

适用于 Cloud Storage 的 BigQuery Data Transfer Service 支持加载压缩数据。 BigQuery Data Transfer Service 支持的压缩类型与 BigQuery 加载作业支持的压缩类型相同。如需了解详情,请参阅加载压缩和未压缩的数据

Cloud Storage URI

要从 Cloud Storage 数据源加载数据,您必须提供 Cloud Storage URI。

Cloud Storage URI 包含存储分区名称和对象(文件名)。例如,如果 Cloud Storage 存储分区的名称为 mybucket,且数据文件的名称为 myfile.csv,则存储分区 URI 为 gs://mybucket/myfile.csv。如果数据被分成多个文件,您可以在 URI 中使用通配符。如需了解详情,请参阅 Cloud Storage 请求 URI

BigQuery Data Transfer Service 不支持在初始双斜杠之后添加多个连续斜杠的源 URI。Cloud Storage 对象名称可包含多个连续斜杠(“/”)字符。但是,BigQuery Data Transfer Service 会将多个连续斜杠转换为单个斜杠。例如,虽然以下源 URI 在 Cloud Storage 中有效,但在 BigQuery Data Transfer Service 中无效:gs://bucket/my//object//name

如需检索 Cloud Storage URI,请执行以下操作:

  1. 打开 Cloud Storage 控制台。

    Cloud Storage 控制台

  2. 浏览到包含源数据的对象(文件)所在的位置。

  3. 在 Cloud Storage 控制台顶部,找到并记下该对象的路径。如需编写 URI,请将 gs://bucket/file 替换为适当的路径,例如 gs://mybucket/myfile.jsonbucket 是 Cloud Storage 存储分区名称,file 是包含数据的对象(文件)的名称。

Cloud Storage URI 的通配符支持

如果您的 Cloud Storage 数据分为共用一个通用基本名称的多个文件,则在加载数据时,您可以在 URI 中使用通配符。

要在 Cloud Storage URI 中添加通配符,可在基本名称后附加星号 (*)。例如,如果您有两个名为 fed-sample000001.csvfed-sample000002.csv 的文件,则存储分区 URI 为 gs://mybucket/fed-sample*。此通配符 URI 随后可用于网页界面或 gcloud 命令行工具 (CLI)。

您可以将多个通配符用于存储分区内的对象(文件名)。通配符可以出现在对象名称中的任何位置。

通配符不会展开 gs://bucket/ 中的目录。例如,gs://bucket/dir/* 会查找 dir 目录中的文件,但不会查找 gs://bucket/dir/subdir/ 子目录中的文件。

您无法匹配没有通配符的前缀。例如,gs://bucket/dirgs://bucket/dir/file.csvgs://bucket/file.csv 都不匹配。

但是,您可以将多个通配符用于存储分区内的文件名。例如,gs://bucket/dir/*/*.csvgs://bucket/dir/subdir/file.csv 匹配。

如需查看通配符支持与参数化表名称相结合的示例,请参阅在转移作业中使用运行时参数

位置注意事项

您的 Cloud Storage 存储分区必须位于与 BigQuery 中目标数据集的区域或多区域兼容的区域或多区域中。

共置 Cloud Storage 存储分区,以便于转移数据。
  • 如果您的 BigQuery 数据集位于多区域位置,则包含您要转移的数据的 Cloud Storage 存储分区必须位于同一位置的单区域或多区域存储分区中。例如,如果您的 BigQuery 数据集位于 EU,则 Cloud Storage 存储分区必须位于 EU 的单区域或多区域存储分区中。
  • 如果您的数据集位于单区域位置,则您的 Cloud Storage 存储分区必须位于同一位置的单区域存储分区。例如,如果您的数据集位于东京区域,则您的 Cloud Storage 存储分区必须位于东京的单区域存储分区中。
  • 例外情况:如果您的数据集位于美国的多区域位置,您可以从位于任何单区域或多区域位置的 Cloud Storage 存储分区转移数据。

如需详细了解转移和区域,请参阅数据集位置和转移

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

价格

  • 您必须遵循加载作业适用的标准 BigQuery 配额和限制

  • 在数据转移到 BigQuery 后,您需要按标准的 BigQuery 存储查询价格付费。

  • 数据上传到 BigQuery 后,不会自动从您的 Cloud Storage 存储分区中删除(除非您在设置转移作业时指明要删除数据)。请参阅设置 Cloud Storage 转移作业

  • 如需了解详情,请参阅我们的转移作业价格页面

配额和限制

BigQuery Data Transfer Service 使用加载作业将 Cloud Storage 数据加载到 BigQuery 中。

加载作业的所有 BigQuery 配额和限制均适用于周期性 Cloud Storage 加载作业。

后续步骤