【发布时间】:2015-08-10 17:07:50
【问题描述】:
我需要索引约 10 亿条记录。
从 elasticsearch 查询数据是按月份范围。 (不只是单月)
什么会更快?
- 将我的文档保存在不同的索引上?假设每月索引,或
- 全部保存在一个索引上,因为其中一个文档字段将是“日期”,并按此字段过滤?
【问题讨论】:
标签: elasticsearch
我需要索引约 10 亿条记录。
从 elasticsearch 查询数据是按月份范围。 (不只是单月)
什么会更快?
【问题讨论】:
标签: elasticsearch
如果您按月份范围查询,请务必按月份拆分索引。 对于十亿个文档,您可能需要跨多个节点的大量分片。按日期拆分可以得到这个。另一种方法是使用包含大量分片的单个索引。对于十亿个文档,我们可能会讨论数十个或数百个分片,具体取决于您的文档大小和硬件。
但是,如果您按日期拆分,您的大多数分片可以廉价地回答 0 个文档与您的查询匹配(假设您的过滤器查询正确)并且有少数分片实际上包含了转换月份的所有数据照顾查询。因此,这就像查询一个较小的索引,其中包含查询所需的所有数据。
【讨论】: