gpt4 book ai didi

postgresql - 将表从 postgres 数据库同步/导入到 elasticsearch 的正确方法是什么?

转载 作者:行者123 更新时间:2023-11-29 12:35:22 24 4
gpt4 key购买 nike

我想将一些表从 postgres 数据库导入到 Elastic search 中,并使这些表与 elastic search 中的数据保持同步。我看过一个关于 udemy 的类(class),还与一位在这个问题上有很多经验的同事交谈,看看最好的方法是什么。我很惊讶地听到他们两个的消息,这似乎是最好的方法,就是用 python、java 或其他一些语言编写代码来处理这个导入并同步它,这让我想到了我的问题。这实际上是处理这种情况的最佳方法吗?似乎会有一个库、插件或其他东西来处理将数据导入 Elasticsearch 并将其与外部数据库保持同步的情况。处理这种情况的最佳方法是什么?

最佳答案

这取决于您的用例。通常的做法是在应用层处理这个问题。基本上,您所做的是将一个数据库的操作复制到另一个数据库。因此,例如,如果您在 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

另一种方法是使用 NOTIFY postgres 将事件发送到某个队列的机制,该队列将处理保存 elasticsearch 中的更改。

关于postgresql - 将表从 postgres 数据库同步/导入到 elasticsearch 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49425827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com