GoogleGoogle Professional Data Engineer (PDE) Certification
·CN
·更新于 21 Aug 2026
一个 Dataflow 流式作业从 Pub/Sub 读取数据,一个 DoFn 应用业务逻辑并将数据写入 BigQuery。如果 DoFn 处理某个消息失败,您希望将该消息发送到您用于警报监控的 Pub/Sub 主题。您应该怎么做?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 在您的 Dataflow 的 DoFn 代码中使用异常处理块,将转换失败的消息通过旁路输出推送到一个新的 Pub/Sub 主题。使用 Cloud Monitoring 监控此新主题上的 topic/num_unacked_messages_by_region 指标。.
为什么这是答案
当 Dataflow 的 DoFn 处理消息失败时,最佳实践是利用 Dataflow 的旁路输出(side output)机制。在 DoFn 中使用异常处理块捕获处理失败的消息,并通过 TupleTag 将这些消息发送到一个专门的旁路输出,该输出可以连接到一个新的 Pub/Sub 主题。这样,失败的消息被隔离并发送到警报主题,而不会中断主管道的执行。通过监控此新 Pub/Sub 主题上的 topic/numunackedmessagesbyregion 指标,可以及时发现并响应处理失败的情况。
其他选项的不足之处:
启用 Pub/Sub 拉取订阅中的“保留已确认消息”是用于数据回溯或重放,而不是用于处理失败消息的警报。
启用 Pub/Sub 死信队列是 Pub/Sub 服务层面的机制,通常用于消息在多次投递失败后,由 Pub/Sub 自动转发到死信主题。但这里要求的是 DoFn 内部业务逻辑处理失败后立即发送警报,旁路输出更直接和灵活。
创建 Pub/Sub 订阅快照是用于订阅状态的保存和恢复,与处理失败消息的警报无关。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 →
无需银行卡