如何将计算添加到ElasticSearch数据库?

5vf7fwbs  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(319)

我使用ElasticSearch来索引大量的传感器数据,以便进行分析。这个表有超过400万行,而且增长很快,预计明年会有4000万行。这使得ElasticSearch看起来很自然,尤其是使用kibana之类的工具来轻松显示数据。
ElasticSearch似乎很棒,但也有一些更复杂的计算需要执行。一个这样的计算是针对我们的“平均用户时间”,我们取两个数据点(拾取的项目的时间戳和放回的项目的时间戳),将它们相互减去,并在特定的时间范围内对一个特定的客户进行所有这些的平均。sql查询看起来像“select*from events where event_type='object picked up'或event_type='object placed back down'”然后获取所有这些事件并获取它们的时间戳的差异,将它们相加,然后除以计数。
据我所知,这些类型的计算并不是ElasticSearch所要做的类型。我已经有人推荐hadoop,但这可能需要很长时间来建立,我们可以使用像go或node/javascript这样的快速语言来批处理事情,并定期将它们添加到数据库中。。。但正确的方法是什么呢?考虑到未来的可扩展性和ElasticSearch的良好工作。
我们的设置是:rails、angularjs、elastic search、heroku、postgres。

vsaztqbk

vsaztqbk1#

也许你可以尝试使用脚本化的度量。在与过滤器的联系,可以给你或多或少的正确解决你的问题
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-scripted-metric-aggregation.html

相关问题