过去几天我一直在阅读一些关于 Druid 的内容,想知道这与 Esper 有何不同。我一直在使用 Esper 进行实时事件处理。感觉 Druid 是通过其简单的类似 JSON 的查询和更简单的界面来做到这一点的。
有人可以纠正我并分享更多的光吗?
编辑
两者可以共存吗?
过去几天我一直在阅读一些关于 Druid 的内容,想知道这与 Esper 有何不同。我一直在使用 Esper 进行实时事件处理。感觉 Druid 是通过其简单的类似 JSON 的查询和更简单的界面来做到这一点的。
有人可以纠正我并分享更多的光吗?
编辑
两者可以共存吗?
我不认识德鲁伊,可以根据我在网站上看到的内容发表评论。在存储解决方案领域,Druid 似乎将自己与 Impala、Redshift、Vertica、Cassandra 和 Hadoop 进行了比较。它似乎是针对时间序列优化的存储然后查询,“主键”是时间对象。
Esper 不存储数据,而是在数据到达时进行分析,因此可能会实现更低的延迟和更高的吞吐量,因为它永远不会进入磁盘(除非具有高可用性)。Druid 似乎能够分析存储的时间序列数据,但这需要将事件从另一个存储重播到 Esper。
一个 Druid 集群由不同类型的节点组成,所以虽然有些是“存储然后查询”,但也有所谓的“实时”节点。从德鲁伊文档:
实时节点提供实时索引。通过这些节点索引的数据可立即用于查询。实时节点将定期构建代表他们在一段时间内收集的数据的段,并将这些段传输到历史节点。
Druid 文档和博客中有关于如何将数据流式传输并立即查询的示例。所以从这个意义上说,它可以做与 Esper 类似的事情,但也可以将数据存储在历史节点中以供以后查询。它还可以通过 Hadoop 摄取数据(显然不是实时处理),这意味着流数据可以在更正或丢失的数据进入时进行修改。