Amazon S3 转移作业

借助适用于 Amazon S3 的 BigQuery Data Transfer Service,您可以自动安排和管理从 Amazon S3 到 BigQuery 的周期性加载作业。

准备工作

在创建 Amazon S3 转移作业之前,请执行以下操作:

  • 验证您已经完成启用 BigQuery Data Transfer Service 所需的所有操作。
  • 如果您使用经典版 BigQuery 网页界面创建转移作业,请允许在浏览器中显示来自 bigquery.cloud.google.com 的弹出式窗口,这样您才能看到权限窗口。您必须向 BigQuery Data Transfer Service 授予管理转移作业的权限。
  • 创建 BigQuery 数据集来存储数据。
  • 为转移作业创建目标表并指定架构定义。目标表必须遵循表命名规则。目标表名称也支持使用参数
  • 检索 Amazon S3 URI、访问密钥 ID 和私有访问密钥。如需了解如何管理访问密钥,请参阅 AWS 文档
  • 转移作业运行通知目前为 Alpha 版。如果您打算为 Cloud Pub/Sub 设置转移作业运行通知,那么您必须拥有 pubsub.topics.setIamPolicy 权限。如果您只是设置电子邮件通知,则无需 Cloud Pub/Sub 权限。如需了解详情,请参阅 BigQuery Data Transfer Service 运行通知

限制

Amazon S3 转移作业存在以下限制:

  • 目前,您无法使用命令行工具配置或更新 Amazon S3 转移作业。
  • 目前,无法参数化 Amazon S3 URI 的存储分区部分。
  • 可能还存在其他限制,具体取决于 Amazon S3 源数据的格式。如需了解详情,请参阅:

所需权限

创建 Amazon S3 转移作业之前,请执行以下操作:

  • 确保创建转移作业的用户在 BigQuery 中拥有以下所需权限:

    • 创建转移作业所需的 bigquery.transfers.update 权限
    • 目标数据集的 bigquery.datasets.update 权限

    预定义的项目级 IAM 角色 bigquery.admin 具有 bigquery.transfers.updatebigquery.datasets.update 权限。如需详细了解 BigQuery 中的 IAM 角色,请参阅访问权限控制

  • 请参阅 Amazon S3 的相关文档,以确保您已配置启用转移作业所需的所有权限。Amazon S3 源数据必须至少包含对其应用的 AWS 托管政策 AmazonS3ReadOnlyAccess

设置 Amazon S3 数据转移作业

要创建 Amazon S3 数据转移作业,请执行以下操作:

Console

  1. 转到 BigQuery 网页界面。

    转到 BigQuery 网页界面

  2. 点击转移作业

  3. 点击 + 创建转移作业

  4. 创建转移作业页面上,执行以下操作:

    • 来源类型部分的来源中,选择 Amazon S3

      转移作业来源

    • 转移配置名称部分的显示名中,为转移作业输入名称,例如 My Transfer。转移作业名称可以是任何容易辨识的值,方便以后需要时对其进行修改。

      转移作业名称

    • 时间安排选项部分的时间安排中,保留默认值(立即开始)或点击在设置的时间开始 (Start at a set time)。

      • 重复频率部分,从以下选项中选择转移作业的运行频率。选项包括:

        • 每日一次(默认值)
        • 每周一次
        • 每月一次
        • 自定义
        • 按需

        如果您选择除“每日一次”以外的选项,则系统还会提供其他选项。例如,如果您选择“每周一次”,则系统会显示一个选项,供您选择星期几。

      • 开始日期和运行时间部分,输入开始转移作业的日期和时间。如果您选择的是立即开始,则此选项处于停用状态。

        转移作业时间安排

    • 目标设置部分的目标数据集中,选择您创建用来存储数据的数据集。

      转移作业数据集

    • 数据源详细信息部分,执行以下操作:

      • Destination table 部分,输入您创建用来在 BigQuery 中存储数据的表的名称。目标表名称支持使用参数
      • Amazon S3 URI 中,按照以下格式输入 URI:s3://mybucket/myfolder/...URI 也支持使用参数
      • Access key ID 部分,输入访问密钥 ID。
      • Secret access key 部分,输入私有访问密钥。
      • File format 部分,选择数据格式:JSON(以换行符分隔)、CSV、Avro、Parquet 或 Orc。

        S3 来源详细信息

    • 转移选项部分的允许的错误数中,输入一个代表可以忽略的错误记录数上限的整数值。

      允许的错误数

    • 如果您选择了 CSV 或 JSON 作为文件格式,请在 JSON,CSV 部分中,选中忽略未知值以接受包含与架构不匹配的值所在的行。未知值会被忽略。对于 CSV 文件,此选项会忽略行尾的额外值。

      忽略未知值

    • 如果选择了 CSV 作为文件格式,请在 CSV 部分中输入用于加载数据的任何其他 CSV 选项

      CSV 选项

    • (可选)在通知选项部分,执行以下操作:

      • 点击切换开关以启用电子邮件通知。启用此选项后,转移作业管理员会在转移作业运行失败时收到电子邮件通知。
      • 选择 Cloud Pub/Sub 主题部分,选择您的主题名称,或点击创建主题以创建一个主题。此选项会为转移作业配置 Cloud Pub/Sub 运行通知。转移作业运行通知目前为 Alpha 版
  5. 点击保存

经典版界面

  1. 转到 BigQuery 网页界面。

    转到 BigQuery 网页界面

  2. 点击 Transfers

  3. 点击 Add Transfer

  4. New Transfer 页面上,执行以下操作:

    • Source 部分,选择 Amazon S3
    • Display name 部分,为转移作业输入名称,例如 My Transfer。显示名可以是任何容易辨识的值,以便您以后在需要修改时能够轻松识别。
    • (可选)在 Schedule 部分,您可以保留默认值 Daily(基于创建时间,每 24 小时一次),或点击 Edit 以更改时间。您还可以将间隔时间更改为“每周一次” (Weekly)、“每月一次” (Monthly) 或“自定义” (Custom)。如果选择“自定义”,应用会预期您输入类似 Cron 作业使用的时间规范,例如 every 12 hours。允许的最短时长为 12 小时。如需了解其他有效的 API 值,请参阅 TransferConfig 下的 schedule 字段。
    • Destination dataset 部分,选择相应的数据集。
    • Destination table 部分,输入目标表的名称。目标表必须遵循表命名规则。目标表名称也支持使用参数
    • Amazon S3 URI 部分,输入 Amazon S3 URI。您可以使用通配符参数
    • Access key ID 部分,输入访问密钥 ID。
    • Secret access key 部分,输入私有访问密钥。
    • File format 部分,选择数据格式:JSON(以换行符分隔)、CSV、Avro、Parquet 或 Orc。
    • Transfer Options - All Formats 部分下:
      • 对于 Number of errors allowed,输入 BigQuery 在运行作业时可以忽略的错误记录数上限。如果错误记录数超过这个值,则作业结果中将返回一个“无效”错误,并且作业将运行失败。默认值为 0
    • 如果您选择了 CSV 或 JSON 作为数据格式,请在 Transfer Options - JSON, CSV 部分下:
      • 对于 Ignore unknown values,如果您想让转移作业丢弃不符合目标表架构的数据,请选中此复选框。
    • 如果您选择了 CSV 作为数据格式,请在 Transfer Options - CSV 部分下:

      • 对于 Field delimiter,输入用于分隔字段的字符。默认值为英文逗号。
      • 对于 Header rows to skip,如果您不想导入源文件中的标题行,请输入相应的标题行数。默认值为 0
      • 对于 Allow quoted newlines,如果您想要允许在引用字段中使用换行符,请选中此复选框。
      • 对于 Allow jagged rows 部分,如果您想要允许转移缺少 NULLABLE 列内容的行,请选中此复选框。
    • (可选)展开 Advanced 部分,并为转移作业配置运行通知。转移作业运行通知目前为 Alpha 版

    • Cloud Pub/Sub topic 部分,输入 Cloud Pub/Sub 主题名称,例如 projects/myproject/topics/mytopic

    • 勾选 Send email notifications,让系统在转移作业运行失败时发送电子邮件通知。

      Cloud Pub/Sub 主题

  5. 点击 Add

排查 Amazon S3 转移作业设置问题

如果您在设置转移作业时遇到问题,请参阅问题排查页面,了解问题排查步骤。

查询数据

当数据转移到 BigQuery 时,数据会写入按提取时间分区的表。如需了解详情,请参阅分区表简介

如果您要直接查询表,而不是使用自动生成的视图,那么必须在查询中使用 _PARTITIONTIME 伪列。如需了解详情,请参阅查询分区表

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面