Google Dataflow SQL |创建分支|错误处理

问题描述

尝试使用Dataflow sql进行流摄取:

我们有一个Pubsub主题(源)和BigQuery表(接收器)。

要实现这一点,我们需要执行以下步骤:

  1. 从BigQuery用户界面中,手动添加主题架构。

    问题:我们可以使用命令行选项自动执行此过程吗?

  2. 使用gcloud dataflow query命令编写sql进行转换和执行(帮助我们进行动态查询自动化)。

    问题:假设我们缺少Pubsub消息中的密钥,并且管道会将这些消息标记为堆栈驱动程序中的错误我们是否可以添加一些功能,例如如果架构验证失败,则移至表y,否则移至表x?就像这样,如果我们收到消息类型y,则移动表y,否则移动表x

解决方法

您可以使用gcloud将架构添加到主题。实际上,这实际上是唯一的方法,https://cloud.google.com/dataflow/docs/guides/sql/data-sources-destinations#gcloud

为保存无法解析为SQL行的消息,该功能通常称为“死信队列”。在用于Pubsub的Beam SQL DDL中可用,但在通过BigQuery UI使用Dataflow SQL时尚不可用。参见https://beam.apache.org/documentation/dsls/sql/extensions/create-external-table/#pubsub