BigQuery 订阅

本文档简要介绍了 BigQuery 订阅、其工作流和相关属性。

BigQuery 订阅是一种导出订阅,可在收到消息时将其写入现有 BigQuery 表。您无需配置单独的订阅方客户端。 您可以使用 Google Cloud 控制台、Google Cloud CLI、客户端库或 Pub/Sub API 来创建、更新、列出、分离或删除 BigQuery 订阅。

如果不使用 BigQuery 订阅类型,您需要拉取或推送订阅以及订阅者(例如 Dataflow),以读取消息并将其写入 BigQuery 表。如果消息在存储到 BigQuery 表之前不需要进行额外处理,则无需运行 Dataflow 作业,而是可以使用 BigQuery 订阅。

如需对消息进行轻量级修改,您可以将单条消息转换附加到 BigQuery 订阅。不过,对于 Pub/Sub 系统,建议使用 Dataflow 流水线,因为在将数据存储到 BigQuery 表之前,需要进行更复杂的数据转换,尤其是在您想要跨消息进行窗口化或聚合时。

如需了解如何使用 Dataflow 将数据从 Pub/Sub 流式传输到 BigQuery 并进行转换,请参阅从 Pub/Sub 流式传输到 BigQuery

Dataflow 中的 Pub/Sub subscription to BigQuery 模板默认强制执行“仅一次”传送。这通常通过 Dataflow 流水线中的重复数据删除机制来实现。不过,BigQuery 订阅仅支持“至少一次”传送。如果您的使用场景非常需要精确的去重,请考虑在 BigQuery 中使用下游流程来处理潜在的重复项。

准备工作

在阅读本文档之前,请确保您熟悉以下内容:

  • Pub/Sub 的工作原理以及不同的 Pub/Sub 术语。

  • Pub/Sub 支持的不同订阅类型,以及您可能需要使用 BigQuery 订阅的原因。

  • BigQuery 的运作方式,以及如何配置和管理 BigQuery 表。

BigQuery 订阅工作流

下图显示了 BigQuery 订阅和 BigQuery 之间的工作流。

BigQuery 订阅的消息流
图 1:BigQuery 订阅的工作流程

以下是引用图 1 的工作流程的简要说明: