弹性搜索每月滚动索引与自定义路由



我正试图找出如何使用自定义路由创建每月滚动索引(多租户场景(,并满足以下要求:

写入流:每个文档都有一个时间戳,文档应该根据该时间戳索引到适当的支持索引,而不是最新索引。此外,写请求将有一个自定义路由密钥(例如:customerId(,以便它们命中特定的碎片。

读取流:请求必须路由到所有备份索引。请求将指定一个自定义路由密钥(例如:customerId(,并且必须聚合并返回结果。

索引创建:滚动索引应该是自动化的。每个索引都应该有一个自定义路由密钥(例如:customerId(想知道,有什么选择?

这个被称为时间序列数据流的功能将出现在即将发布的ES 8.5中。

正常数据流和时间序列数据流之间的最大区别是,TSDS的所有备份索引都按时间戳排序,并且所有文档都将在文档的给定时间段内写入正确的备份索引,即使该备份索引不是当前的写入索引,这意味着如果您的数据源滞后(甚至滞后几个小时(,数据仍将出现在正确的索引中。此外,与同一维度相关的所有文档(即,在您的案例中为customerId(最终都将位于同一碎片上。

另一个区别是,文档的ID是根据时间戳和文档中包含的维度来计算的,这意味着给定的时间戳/维度对只能出现一次(即没有重复(。

从技术上讲,您已经可以使用普通数据流实现几乎相同的效果,但是,由于您只能为当前写入索引中的文档编制索引,因此无法实现与将文档存储在同一碎片中以及将文档写入旧的备份索引相关的底层优化。

相关内容

  • 没有找到相关文章

最新更新