以下链接 (https://cloud.google.com/pubsub/docs/bigquery#change_data_capture) 指出,当从 Pub/Sub 将行流式传输到 Google Big Query 时,我们应该能够在JSON 以确保数据通过主键更新。
我当前有一个主键集,并且可以在测试时写入初始行,但是当我尝试使用包含 _CHANGE_TYPE 值重写同一行时,该消息在订阅中保持未确认状态。我在日志记录中找不到任何相关错误。
还有其他人遇到此问题或使此功能正常工作吗?
示例架构:
_CHANGE_TYPE = 'UPSERT'
示例发布/订阅消息 1:
id: STRING,
time: TIMESTAMP
示例发布/订阅消息 1(带 UPSERT):
{
"id": "abcd1234",
"time": "2024-09-01 00:00:00"
}
。您可以将请求订阅附加到死信主题,并查看 {
"id": "abcd1234",
"time": "2024-09-02 00:00:00",
"_CHANGE_TYPE": "UPSERT"
}
属性以了解消息无法写入 BigQuery 表的原因。
根据您的使用案例,您可能有 3 个完全独特的权限场景,但为了确保我可以将其用于 WRITE、UPSERT 和 DELETE,我刚刚向我的 PubSub 服务帐户授予了
CloudPubSubDeadLetterSourceDeliveryErrorMessage
权限。可能有点矫枉过正,但确实有效。