Elasticsearch中TimeSeries数据的数据建模

时间:2016-02-25 06:23:23

标签: elasticsearch

我们每天产生大约1GB的数据,其中包含大约2百万个文档。我想将这些数据存储在elasticsearch中。为了存储它,有不同的方法。

  1. 每天创建一个索引(假设索引为test.22-02-2016)并将每一天数据存储在索引中。
  2. 创建一个索引(名为test)并在索引下为每个日期创建类型(作为test / 22-02-2016)。
  3. 请建议我哪一个好,为什么?除此之外还有其他方法。

    提前致谢。

1 个答案:

答案 0 :(得分:3)

如果您创建单个索引,则必须事先确定您提供了多少个主分片(在创建索引后无法创建新分片)。主分片是定义索引容量的主要组件之一,因为每个分片都是一个消耗资源的Lucene索引,因此由于可用的RAM,硬盘,CPU等而具有物理限制。所以你可能决定通过创建(例如)100个分片来计划足够的容量,但它是not a good idea。过度分配是可以的,但不是太多。

要考虑的另一件事是,如果在同一索引中创建多个类型,则需要满足一些约束。也就是说,如果在某些时候你想要添加一个与同一类型的另一个字段冲突的新字段,你将无法这样做,唯一的解决方案就是创建一个新的索引。

主要由于这两个原因(和a few others),您最好每天创建一个新索引。