2017-08-08 94 views
0

对不起,如果这是一个抽象的问题,我会尽量提供更多的细节。每个实验都有自己的一组元数据(基本上是键/值对,比如开始时间,结束时间,名称,资源基数,系统类型等),并且每个实验都有一组元数据以及与各种性能指标相关的一个或多个时间序列数据(例如,以10秒为间隔从头到尾的CPU和内存使用情况)。 数据量不会很大;最多几个千兆字节每月。实验数据组织 - 是否会弹性搜索?

我想将这些数据存储在单个系统中(例如,在某些特定时间序列数据库中不包含MySQL中的元数据和性能数据)。 elasticsearch会适合这个吗?我怎样才能最好地索引数据?

编辑:要更清楚,这里有一些关于如何组织数据的想法。对于元数据,使用metadata指数,例如,像这样的实验aa_12:

{ 
    "_id": "aa_12", 
    "_source": { 
    "name": "aa_12", 
    "start": 1420070400001, 
    "end": 1420097400001, 
    "system": "cluster-1", 
    "nodes": 6, 
    ... 
    } 
} 

具有实验名称为_id使得不定期的更新更容易(我想)。

则关联到这个实验中的时间序列使用索引perfdata举例如下:

{ 
    "_source": { 
    "host": "cluster-1-1", 
    "experiment": "aa_12", 
    "cpu1": 44, 
    "cpu5": 40, 
    "cpu15": 41, 
    "memtot": 16384, 
    "memused": 5025, 
    ... rest of metrics 
    "time": 1420070410001 
    } 
} 

,所以我可以查询,例如,“给我量度X主机Y代表的实验时间Z“并使用kibana/timelion获得度量图。我的关注点是,perfdata指数可能增长到包含大量条目(整体规模不是很大,但仍有几十万条目)。以上是否有意义?

回答

1

按我的知识,

  • InfluxDB,卡桑德拉是时间序列数据的不错的选择
  • Elasticsearch是元数据不错的选择

ELasticsearch是建立搜索虽然很多人都能够通过使用快照和还原功能减轻Elastic中的弹性问题,将其用作永久性数据存储。这里是链接ElasticSearch resiliency

此外,如果您的用例类似于下面的问题,那么ES是要走的路。

  • 您是否打算使用ES进行搜索?是
  • 聚合,全文搜索?是
  • 你关心数据永续性吗?没有

如果你做一下数据弹性照顾,我会建议,存储元数据的其他存储(MySQL的),以及除ES或使用快照或恢复ES的功能,以保持弹性。