Tag: elasticsearch sidekiq

dump elasticsearch 2.x to mongodb and back to ES 6.x.

这个问题更多的是理论而不是源代码。 我有一个ES 2.x节点,其数据超过1.2TB。 我们有40多个索引,每个索引至少有一种类型。 这里,ES 2.x用作数据库而不是搜索引擎。 用于将数据转储到ES 2.x的源丢失。 此外,数据未规范化,但单个ES文档具有多个嵌入文档。 我们的目标是重新创建数据源,同时将其标准化。 我们计划的是: 从ES中检索数据,对其进行分析并将其转储到特定集合的新mongodb中,并维护数据之间的关系。 即。 以标准化forms保存。 在新的ES 6节点上索引新的mongo数据。 我们使用的是JRuby 9.1.15.0,Rails 5,Ruby 2.4和Sidekiq。 目前,我们正在从ES检索特定日期时间范围的数据。 有时我们收到0条记录,有时甚至是100000条。 问题是当我们收到大量记录时。 下面是一个示例脚本,当日期范围的数据很小但数据很大时失败时,它会起作用。 1.2TB / 40指数是平均指数的大小 。 class DataRetrieverWorker include Sidekiq::Worker include Sidekiq::Status::Worker def perform(indx_name, interval = 24, start_time = nil, end_time = nil) unless start_time || end_time client = ElasticSearchClient.instance.client last_retrieved_at = RetrievedIndex.where(name: […]