【发布时间】:2016-06-19 05:50:15
【问题描述】:
最终我想为 PostgreSql 中的数据提供一个可扩展的搜索解决方案。我的发现使我倾向于使用 Logstash 将写入事件从 Postgres 发送到 ElasticSearch,但是我还没有找到可用的解决方案。我发现的解决方案涉及使用 jdbc-input 以间隔从 Postgres 查询 all 数据,并且不捕获删除事件。
我认为这是一个常见的用例,所以我希望你们可以与我分享你的经验,或者给我一些指导。
【问题讨论】:
-
这个答案可能会有所帮助(在我提到 Go/Python 二进制日志解决方案的最后):stackoverflow.com/questions/34477095/…
-
感谢 Val 的指点。我在问这个问题之前发现了那个帖子。但是我认为现在我可以使用 input-jdbc 并做一些额外的工作来处理已删除的数据。您知道如何设置 Logstash 以从 Postgres 捕获事件吗?
-
Uhm... 我认为要解决 DELETE 问题,我永远不会删除主数据库中的任何记录,只需将记录标记为
deleted,它将反映在弹性搜索。当我想删除东西时,我在主数据库和 ES 中都设置了删除时间表,以删除带有已删除标记的所有内容。 -
是的,我也建议使用后一种方法,只需标记为已删除并更新您的时间戳,jdbc 输入就会处理它。
-
如果您愿意撰写它,我很乐意将其标记为答案:)
标签: postgresql elasticsearch logstash