首页 > 解决方案 > 每 30 秒查询一次 PostgreSQL 的有效方法?

问题描述

我需要从 AWS 中的某些 PostgreSQL 表中获取数据(有多少条记录等待处理)以进行报告。qry 的结果被发布到日志中,并被 FluentD 恶魔拾取并推送到 elasticsearch/Kibana。直接的方法是编写一个小型 Spring Boot 应用程序,每 30 秒左右 ping Db。我觉得这既低效又昂贵。有更好的方法吗?

感谢你的帮助。

标签: javapostgresqlamazon-web-servicesspring-bootelasticsearch

解决方案


不是定期查询数据库,而是使用变更数据捕获 (CDC) 来生成变更事件流。使用流处理,将结果写入 Elasticsearch 索引。如果您不担心供应商锁定,您可以使用 AWS DMS、Kinesis 和 Lambda 来做到这一点。否则,您可以使用合适的 Kafka 连接器来读取更改并将事件发布到 Kafka。然后使用 Kafka 流将数据推送到 Elasticsearch。


推荐阅读