kafka connect stream和postgresql datafileread性能缓慢

xytpbqjk  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(401)

我正在使用kafka connect来传输一个有250000000条记录的数据库。从源代码读取不是问题,它完全是在一个不明显的时间范围内读取的,并存储在Kafka代理上。不过,Flume侧的速度非常慢,需要几天才能完成。
我正在使用具有以下配置的jdbc接收器连接器:

"config": {
    "auto.create": "true",
    "auto.evolve": "true",
    "connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector",
    "insert.mode": "upsert",
    "pk.fields": "id",
    "pk.mode": "record_value",
    "tasks.max": "20",
    "batch.size": "5000",
    "max.poll.records": "5000"
}

我正在使用一个aws postgres rds示例:db.m5.4xlagle(8核16vcpus 64gbram)
sink表除了主键之外没有其他索引。使用rds performance insights,datafileread和walwritelock消耗了绝大多数活动(datafileread约占60%,walwritelock约占30-40%)。
我不熟悉数据库速度和管理,这是典型的性能吗?如果没有,我可以研究哪些方法来提高性能?这是不是我的示例没有足够的能力来处理写操作?
这是数据库负载的一个图像,当我删除受影响的sink表上的所有索引时,靠近尾端的绿线增长。

wgmfuz8q

wgmfuz8q1#

在发布前20分钟,我清除了除主键以外的所有索引。这大大增加了处理时间,现在已经处理了几百万行。

相关问题