Kafka Bigquery中的重复行

Posted

技术标签:

【中文标题】Kafka Bigquery中的重复行【英文标题】:Kafka Duplicated rows in Bigquery 【发布时间】:2020-10-19 19:26:24 【问题描述】:

我正在使用 BigQuery 对我的 Postgres 数据库进行 SINKing,它正在工作,但是当我插入、更新或删除一行 (Postgres) 时,它会出现在 BigQuery 3 行中:一行使用插入命令,另一行使用更新命令和最后删除。

例如:

1 - 插入后

Postgres
--------------------
id | name | deleted
--------------------
1  | John |  false
--------------------

BigQuery
--------------------
id | name | deleted
--------------------
1  | John |  false
--------------------

2 - 更新名称后

Postgres
--------------------
id | name | deleted
--------------------
1  | Mary |  false
--------------------

BigQuery
--------------------
id | name | deleted
--------------------
1  | John |  false
1  | Mary |  false
--------------------

3 - 删除后

Postgres
--------------------
id | name | deleted
--------------------
1  | Mary |  true
--------------------

BigQuery
--------------------
id | name | deleted
--------------------
1  | John |  false
1  | Mary |  false
1  | Mary |  true
--------------------

谁能告诉我如何解决这个问题?

【问题讨论】:

这似乎是连接器的一个实现细节。但是您没有告诉您通过什么服务将 PostgreSQL 实例连接到 BigQuery。 【参考方案1】:

听起来您正在使用 Debezium Postgres 连接器,它从数据库中捕获所有相关事件并为每个事件创建 新记录

不确定您是否希望 BigQuery 与数据库完全匹配,但如果是这种情况,您可能不会使用 Kafka Connect,因为它几乎总是会向 BigQuery 插入新记录(取决于连接器实现细节),并且而是使用一些批处理来定期将整个数据库导入 BiqQuery

【讨论】:

以上是关于Kafka Bigquery中的重复行的主要内容,如果未能解决你的问题,请参考以下文章

根据条件对 BigQuery 中的行进行重复数据删除

根据google BigQuery SQL中的属性删除重复行

在 C# 中插入具有重复记录列的 BigQuery 行

BigQuery MERGE 意外的行重复

如何过滤 bigquery 的重复表行数据以删除重复行?

在 BigQuery 中删除重复的相等行