愚者求师之过,智者从师之长。

es使用场景多维数据分析问题咨询

Elasticsearch | 作者 super | 发布于2019年03月08日 | 阅读数:3562

我想利用es做多维数据分析,但是由于不同的指标可能拥有不同的维度,如果指标数据都放在同一个index,由于维度名不一样,这样会造成数据很稀疏,而且字段也会越来越多,如果不同的指标放不同的index,这样又会造成index数量越来越多。
 
请问如果用es做业务指标的存储以及多维数据分析的话,怎么存比较好?或者es本身就不适合这样的场景。我们也考虑了opentsdb,druid,但是这两者运维成本相对较高。谢谢!
已邀请:

Jea - 一只猿

赞同来自:

我之前存储的方式: 
按照天区分, 每天一个索引, 相关数据都放一个index: index-year-month-day
脚本每月reindex到index: index-year-month; 删除原: index-year-month-day
 
查询时候 host:9200/index-year-month-*( 或者多个日期如:index-year-month-day1,index-year-month-day2,index-year-month-day3 )/_search
 
一个月前的数据迁移为冷数据
 
倒是没考虑数据稀疏这种问题, 因为需求在那放着

rochy - rochy_he

赞同来自:

一般而言都是根据时间来建立最小粒度的索引
例如按小时建立索引
 
查询的时候可能会按照日、月、年等更多维度来查询
 
ES 有一个叫 RollUp 的功能,可以根据最小粒度的数据,根据设置的维度生成新的结果
这样例如:根据小时生成日、月、年
 
查询的时候会根据新生成的结果进行查询,这样效率很高
 
请参考:https://www.elastic.co/guide/e ... .html

要回复问题请先登录注册