当前位置: 首页 > 面试题库 >

确保ElasticSearch与数据库同步

卓星波
2023-03-14
问题内容

我正在考虑使用日常脚本来执行以下操作,以解决ES服务器上更新存在问题的任何情况(我还没有高可用性设置,即使如此,它仍然可能是在数据库和ES之间复制数据的情况下的良好做法)。在把这个脚本放在一起之前,我想我会检查一下是否要以正确的方式进行操作,以及是否应该使用任何库或技术。

该脚本将简单地从数据库中检索所有ID,并从ElasticSearch中检索所有ID,其中created_at < current_time(当前时间的快照,因为它是脚本运行时的移动目标)。然后,它将根据这些ID集之间的差异向Elastic搜索添加和删除。

这听起来像是一种合理的方法吗?


问题答案:

要回答我的问题,这不是最佳方法。

一种更简单(如果需要更多资源)的方法是定期重建整个索引。当然,这在生产中很难做到,因为这会导致数分钟或数小时的停机时间,因此诀窍是重建新索引并转而使用该索引。在ElasticSearch中,您无法重命名索引,但可以使用别名。

这里讨论了该方法,并在这里为Tyre用户提供了一项抽佣任务。



 类似资料:
  • 问题内容: 目的 :将elasticsearch 与postgres数据库同步 为什么 :有时newtwork或集群/服务器中断,因此应记录将来的更新 本文https://qafoo.com/blog/086_how_to_synchronize_a_database_with_elastic_search.html建议我应该创建一个单独的表来同步elasticsearch的表,从而允许从上一个记

  • 问题内容: 我是Elasticsearch的新手,但我非常喜欢。我唯一找不到也无法完成的事情是确保生产系统的Elasticsearch安全。我在elasticsearch之前阅读了很多有关使用nginx作为代理的信息,但是我从未使用过代理,也从未使用过代理。 这是在生产系统中确保elasticsearch的典型方法吗? 如果是这样,是否有任何教程或不错的读物可以帮助我实现此功能。我真的很想在我们的

  • 5.8.1.1 Elasticsearch 安装 安装 logstash ElasticSearch中 logstash安装和logstash-input-jdbc插件 安装 logstash-input-jdbc插件 logstash-plugin install logstash-input-jdbc # 在有网点环境下安装,将安装插件后的 logstash 拷贝到内网环境即可使用。 编辑

  • 问题内容: 最终,我想为PostgreSql中的数据提供一个可扩展的搜索解决方案。我的发现指向我使用Logstash将写入事件从Postgres传送到ElasticSearch,但是我没有找到可用的解决方案。我发现的解决方案涉及使用jdbc- input 间隔查询Postgres的 所有 数据,并且不捕获删除事件。 我认为这是一个常见的用例,因此我希望你们可以与我分享您的经验,或者给我一些指导。

  • 问题内容: 我已经使用sqlite3在xcode中创建了一个应用程序。我想创建一个名为sync的按钮以与服务器中的mysql数据库进行同步。关于同步过程有什么建议吗?请告诉我。 问题答案: 在服务器上使用Web服务返回架构版本号和上次更新的时间戳记。如果客户端已过时,它将再次调用以获取更新的架构和/或新数据。

  • 问题内容: 我需要每周将一个大型(3GB + / 40+个表)本地MySQL数据库同步到服务器数据库。这两个数据库完全相同。本地数据库会不断更新,每周大约需要用本地数据更新服务器数据库。您可以将其称为“镜像数据库”或“主服务器/主服务器”,但是我不确定这是否正确。 现在,数据库仅在本地存在。所以: 1)首先,我需要将数据库从本地复制到服务器。由于数据库大小和PHPMyAdmin的限制,使用PHPM