如何向Elastic Search数据库添加计算?

时间:2015-10-30 02:55:35

标签: hadoop elasticsearch bigdata kibana

我正在使用弹性搜索来索引大量传感器数据以用于分析目的。该表有400万+行并且增长很快 - 预计明年将达到4000万。这使得Elastic Search看起来很自然,尤其是使用Kibana等工具可以轻松显示数据。

弹性搜索看起来很棒,但是还有一些更复杂的计算需要执行。一个这样的计算是针对我们的“平均用户时间”,其中我们采用两个数据点(拾取的项目的时间戳和放回的项目的时间戳),相互减去它们并对一个特定客户的所有这些进行平均具体时间表。 SQL查询看起来像“select * from events event from event_type ='object picked up'或event_type ='object place down down'”然后获取所有这些事件并获得所有时间戳的差异,将它们全部加在一起然后除以计数。

根据我的理解,这些类型的计算并不是Elastic Search要做的事情。我有人推荐Hadoop,但可能需要很长时间才能设置好,我们可以使用像GO或Node / JavaScript这样的快速语言批量处理并定期将它们添加到数据库中...但是什么是正确的这样做的方法?允许未来的可扩展性并与Elastic Search良好协作。

我们的设置是:Rails,AngularJS,Elastic Search,Heroku,Postgres。

1 个答案:

答案 0 :(得分:1)

也许您可以尝试使用脚本化指标。与过滤器相关联可以为您的问题提供或多或少的适当解决方案

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-scripted-metric-aggregation.html