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

从Oracle /关系表将数据索引到弹性搜索的更好方法是什么?

咸弘雅
2023-03-14
问题内容

有什么选项可将大数据从Oracle DB索引到弹性搜索集群? 要求将3亿条记录一次索引到多个索引中,并且每天要进行大约100万次更改的增量更新。

我已经尝试了用于Elasticsearch river / feeder的
JDBC插件,两者似乎都在内部运行或需要本地运行的弹性搜索实例。请让我知道是否有更好的选择将弹性搜索索引器作为独立作业运行(可能基于Java)。任何建议将非常有帮助。谢谢。


问题答案:

我们将ES用作报告数据库,并且在将新记录写入SQL时,我们将采取以下措施将其添加到ES中:

  1. 将主键写入队列(我们使用rabbitMQ)
  2. Rabbit获取主键(如果有时间),并查询关系数据库以获取所需的信息,然后将数据写入ES

过程非常有效,因为它可以处理新数据和旧数据。对于旧数据,只需编写一个快速脚本以将300M主键写入Rabbit,即可完成!



 类似资料:
  • 问题内容: 有什么选项可以将大数据从Oracle DB索引到elasticsearch集群? 要求将3亿条记录一次索引到多个索引中,并且每天要进行大约100万次更改的增量更新。 我已经尝试了用于Elasticsearch river / feeder的 JDBC插件,两者似乎都在内部运行或需要本地运行的elasticsearch实例。请让我知道是否有更好的选择将elasticsearch索引器作为

  • 我编写了一个reindex方法,可以执行以下操作: 它确实起到了作用,但我现在确定,仅仅删除然后创建一个索引是否有意义。如何改进此方法?

  • 它们在ES术语表中没有提及。 它们与其他ES实体(碎片/节点/索引)的关系是什么?

  • 我使用Spring数据弹性搜索用于搜索/缓存目的。我需要执行一个使用child(TermCache)和parent(ConceptCache)属性的查询,并返回子对象的实例(这意味着我不能使用嵌套对象)。 我有以下结构: 我需要一个关于如何处理这类任务的提示;我应该使用两个单独的查询,还是应该以某种方式获取父对象的属性,或者其他什么?

  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!

  • 我正在使用spring数据elasticsearch来执行CRUD操作。 我有一个扩展Elasticsearch chRepository的自定义存储库。 最终,ElasticsearchRepository扩展了CrudRepository,这意味着可以更新现有记录。 问题是,你是如何做到这一点的?我还没有找到一个名为“update()”的方法 我认为做以下事情会有用(代码从https://gi