itinycheng / flink-connector-clickhouse

Flink SQL connector for ClickHouse. Support ClickHouseCatalog and read/write primary data, maps, arrays to clickhouse.
Apache License 2.0
363 stars 154 forks source link

删除操作在clickhouse中执行比较慢,有什么办法处理 #60

Closed itsegg closed 3 months ago

itsegg commented 1 year ago

您好,我使用的是1.13版本的包,现在每天有100W的更新数据, 数据库中的操作是先删除,再插入。 经过Flink CDC传到clickhouse数据库中的删除操作是一条条数据进行删除的,执行很慢,都要好几个小时才能消化完这些删除操作。 请问能有什么办法优化吗?谢谢 image

itinycheng commented 1 year ago

@itsegg 最直接方法是减少ClickHouse的Mutation操作,可以在connector端忽略delete语句生成sink.ignore-delete = true,不过这要看是否适合你的业务场景;

itsegg commented 1 year ago

我这边下载了最新的1.13的包,设置了sink.ignore-delete = true忽略delete语句,然后通过ReplacingMergeTree对数据进行合并是可以的。 但是发现了一个问题,设置sink.ignore-delete = true之后,把update语句也给忽略了。

itinycheng commented 1 year ago

我这边下载了最新的1.13的包,设置了sink.ignore-delete = true忽略delete语句,然后通过ReplacingMergeTree对数据进行合并是可以的。 但是发现了一个问题,设置sink.ignore-delete = true之后,把update语句也给忽略了。

@itsegg 这个option只作用于delete语句哈,看下这个类: https://github.com/itinycheng/flink-connector-clickhouse/blob/release-1.13/src/main/java/org/apache/flink/connector/clickhouse/internal/executor/ClickHouseUpsertExecutor.java

如果真有问题,最好能帮Debug具体原因,我找时间修复;

czy006 commented 3 months ago

Now the new Flink Clickhouse Connector is availabe. Due to the long problem time, please submit bug feedback if there are still problems @itsegg