apache-kafka - Kafka Bigquery中的重复行
问题描述
我正在使用 BigQuery SINKing 我的 Postgres 数据库并且它正在工作,但是当我插入、更新或删除一行(Postgres)时,它出现在 BigQuery 3 行中:一个使用 insert 命令,另一个使用 update 命令,最后一个使用 delete .
例如:
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
--------------------
谁能告诉我如何解决这个问题?
解决方案
听起来您正在使用 Debezium Postgres 连接器,它从数据库中捕获所有相关事件并为每个事件创建新记录。
不确定您是否希望 BigQuery 与数据库完全匹配,但如果是这种情况,您可能不会使用 Kafka Connect,因为它几乎总是会向 BigQuery 插入新记录(取决于连接器实现细节),而是使用一些批处理过程来定期将整个数据库导入 BiqQuery
推荐阅读
- c - C函数替换参数的特定索引中的字节
- javascript - 如何在自定义选择组件标签上绑定 value 属性
- sharepoint - SharePoint 日期/时间计算决策树
- java - 集成测试休息控制器 assertEquals 失败
- javascript - 新的 JAVASCRIPT 问题与 IF 语句和多个值
- android - 从前台服务启动活动的意图标志
- python - 为什么我从 API 查询时收到 400 错误?
- html - 我无法在带有 youtube 视频的 iframe 中添加样式
- android - Moshi 自定义适配器 - IllegalArgumentException:冲突 @FromJson 方法:在 gradle 版本提升到 5.6.4 和插件到 3.6.0 之后
- javascript - 通过 got 库发送soap请求