我想将一些表从Postgres数据库导入到Elastic搜索中,并且还要使表与elasticsearch中的数据保持同步。我看过关于udemy的课程,还与一位在此问题上有丰富经验的同事进行了交谈,以了解最好的方法是什么。我很惊讶地听到他们俩的来信,似乎最好的方法是用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/zh-
CN/logstash/current/plugins-inputs-
jdbc.html
另一种方法是使用postgres 的NOTIFY机制将事件发送到某个队列,该队列将处理保存Elasticsearch中的更改。
问题内容: 我正在尝试使用jdbc-odbc桥创建一个简单的连接: 但是然后我得到这个异常: 有任何想法吗? 2009年3月24日更新:现在可以使用了。创建了一个用户数据源,由于某种原因该异常消失了。 作为一个普遍的问题,用Java处理数据库连接的最佳方法是什么? 问题答案: 为了回答您的一般问题,我想说处理Java中数据库连接的最佳方法是避免JDBC- ODBC桥。可以测试或学习JDBC,但不能
我正在通过使用Laravel作为后端开发来创建一个电子商务移动应用程序。 方案:我有一个Product表,其中存储了有关产品的一些信息。每当用户购买一个产品,他将得到一个购买历史记录(它将显示产品信息)将被存储到数据库中。所以当卖家更新他们的产品信息时,用户购买历史记录的产品信息不会受到影响。 问题:如果我只是简单地创建一个用户的购买历史记录表来存储每个用户的记录,我认为这将在数据库中需要大量的空
我正在使用带有knex javascript库的postgres来构建我的sql查询。我想要处理所有从postgres服务器抛出的错误,所以我想要这样做的方式是通过检查抛出错误的类型。 有没有办法处理这样的错误?
问题内容: 我正在Heroku上编写一个node.js应用程序,并使用pg模块。我无法弄清楚为查询数据库所需的每个请求获取客户端对象的“正确”方法。 该文档使用如下代码: 但是,您肯定不需要在使用数据库的每个函数中调用对吗?我看过其他执行此操作的代码: 我倾向于第二种选择,因为我相信Heroku的免费数据库实例无论如何都仅限于一个连接,但是以这种方式进行操作是否有任何弊端?每次使用之前,是否需要检
我已经完成了连接Clickhouse服务器/客户端和创建表的任务。然后,我想将数据从csv导入到该表中。问题是ClickHouse中的DateTime类型需要这样的格式:YYYY-MM-DD hh:mm:ss,但是我下载的数据集只有这个时间格式:2016-01-13 6:15:00am(YYYY-MM-DD h:MM:ss)小时在我的数据集中只有h,应该是hh。请告诉我如何将csv文件中的所有数据
我已经谷歌了几个小时了,我似乎不能让这个东西工作。我正在创建一个简单的Netbeans项目应用程序,允许用户登录并向应用程序添加(在数据库中存储他们的详细信息)人员。 我必须使用MySQL数据库,我已经遵循了所有指示,但我就是无法连接。请参阅下面的屏幕截图。我也在使用下载的jar。我做错了什么?请帮忙 Netbean 8.1 MySQL Server 5.6 Windows 10