Storage Write API 简介

BigQuery Storage Write API 是一种统一的数据注入 API,可用于实时地将记录流式传输到 BigQuery 中。Storage Write API 可通过 gRPC 和 REST 端点进行访问。

选择一种流式传输方法

您可以通过两种方式使用 Storage Write API:通过 gRPC 流式传输或通过 REST 端点。gRPC 流式传输非常适合长期连接和持续流式传输,而 REST 端点最适合临时性、无状态或受限的环境。

对于新工作负载,我们建议使用 gRPC 流式传输,原因如下:

  • 高效协议。gRPC 流式传输比 REST over HTTP 更高效。它还支持协议缓冲区二进制格式和 Apache Arrow 列式格式,这两种格式比 JSON 更高效。写入请求是异步的,同时保证了排序。
  • 费用更低。与 REST 相比,gRPC 流式传输的费用要低得多。此外,您每月可以免费注入高达 2 TiB 的数据。
  • 正好传送一次语义。gRPC 流式传输支持通过使用流偏移量实现“正好一次”语义,并且如果客户端在附加记录时提供流偏移量,则绝不会在一个流中写入两条偏移量相同的消息。
  • 流级事务。借助 gRPC 流式传输,您可以将数据写入流并以单个事务的形式提交数据。如果提交操作失败,您可以安全地重试操作。
  • 跨流事务。借助 gRPC 流式传输,多个工作器可以创建自己的流以便独立处理数据。当所有工作器都完成后,您可以将所有流作为事务提交。
  • 架构更新检测。使用 gRPC 流式传输时,如果底层表架构在客户端进行流式传输时发生更改,则 API 会通知客户端。客户端可以决定是使用更新后的架构重新连接,还是继续向现有连接写入数据。

下图展示了选择流式传输方法时需要注意的其他技术细节:

用于选择 Storage Write API 流式处理方法的图表。

后续步骤