2015-10-30 48 views
1

我使用弹性搜索来索引大量的传感器数据以用于分析目的。这张桌子有四百多万排,并且增长迅速 - 预计明年将有四千万。这使得Elastic Search看起来很自然,特别是使用Kibana等工具来轻松显示数据。如何将计算添加到弹性搜索数据库?

弹性搜索看起来不错,但是还有一些更复杂的计算也必须执行。一个这样的计算是针对我们的“平均用户时间”,其中我们取两个数据点(拾取项目的时间戳和项目放置的时间戳),将它们相互减去,并对一个特定客户的平均值具体时间表。 SQL查询看起来像“select * from event where event_type ='object pick up'or event_type ='object down back down'”,然后获取所有这些事件并获取所有时间戳的差异,然后将它们相加,然后除以计数。

根据我的理解,这些类型的计算不是Elastic Search要做的事情类型。我曾有人推荐Hadoop,但这可能需要很长时间才能建立,我们可以使用像GO或Node/JavaScript这样的快速语言批量处理事件并定期将它们添加到数据库中......但是什么是正确的如何做到这一点?考虑未来的可伸缩性,并与Elastic Search很好地协作。

我们的设置是:Rails,AngularJS,弹性搜索,Heroku,Postgres。

回答