【发布时间】:2015-10-31 20:11:13
【问题描述】:
我正在使用 Elastic Search 来索引大量传感器数据以进行分析。该表有 400 万行以上并且增长迅速——预计明年将有 4000 万行。这使得 Elastic Search 看起来很自然,尤其是使用 Kibana 等工具可以轻松显示数据。
Elastic Search 看起来很棒,但是还需要执行一些更复杂的计算。一种这样的计算是针对我们的“平均用户时间”,其中我们取两个数据点(拾取物品的时间戳和放回物品的时间戳),将它们彼此相减,然后对一个特定客户的所有这些进行平均具体时间范围。 SQL 查询看起来像“select * from events where event_type = 'object pick up' or event_type = 'object placed back down'”然后获取所有这些事件并获取所有时间戳的差异,将它们加在一起然后除以数。
根据我的理解,这些类型的计算并不是 Elastic Search 想要做的事情。我曾有人推荐 Hadoop,但这可能需要很长时间才能建立起来,我们可以使用 GO 或 Node/JavaScript 之类的快速语言来批量处理事物并定期将它们添加到数据库中......但是什么是正确的怎么做?考虑到未来的可扩展性并与 Elastic Search 完美配合。
我们的设置是:Rails、AngularJS、Elastic Search、Heroku、Postgres。
【问题讨论】:
标签: hadoop elasticsearch bigdata kibana