Dan*_*Dan 6 postgresql elasticsearch
我想将 postgres 数据库中的一些表导入到 Elastic 搜索中,并将这些表与弹性搜索中的数据保持同步。我看过一个关于udemy的课程,还和一个在这个问题上有很多经验的同事聊过,看看最好的方法是什么。我很惊讶从他们两个那里听到,似乎最好的方法是用 python、java 或其他一些语言编写代码来处理这个导入并同步它,这让我想到了我的问题。这实际上是处理这种情况的最佳方法吗?似乎会有一个库、插件或其他东西可以处理将数据导入弹性搜索并将其与外部数据库保持同步的情况。处理这种情况的最佳方法是什么?
这取决于您的用例。一个常见的做法是在应用层处理这个。基本上你要做的是将一个数据库的操作复制到另一个数据库。因此,例如,如果您在 postgres 中保存一个条目,那么您在 elasticsearch 中也会这样做。
但是,如果您这样做,则必须有一个排队系统。队列要么集成在您的应用程序层上,例如,如果在 elasticsearch 中保存失败,那么您可以重播该操作。此外,在您的排队系统上,您将实施节流机制,以免压倒 Elasticsearch。另一种方法是将事件发送到另一个应用程序(例如 logstash 等),因此节流和持久性将由该系统而不是您的应用程序处理。
另一种方法是这个https://www.elastic.co/blog/logstash-jdbc-input-plugin。您使用另一个系统“轮询”您的数据库并将更改发送到 elasticsearch。在这种情况下,logstash 是理想的,因为它是 ELK 堆栈的一部分,并且具有很好的集成。也检查一下https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html
另一种方法是使用postgres的NOTIFY机制将事件发送到某个队列,该队列将处理保存在 elasticsearch 中的更改。
归档时间: |
|
查看次数: |
3498 次 |
最近记录: |