首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elasticsearch、Apache Druid和Rockset之间的区别是什么?

Elasticsearch、Apache Druid和Rockset之间的区别是什么?
EN

Stack Overflow用户
提问于 2020-08-01 03:01:24
回答 1查看 527关注 0票数 2

我正在开发一个游戏应用程序,其中我需要我正在构建的排行榜的实时数据。我读过一堆stackoverflows和公司博客--但老实说,我不确定哪一个最适合我的用例。我正在使用DynamoDB来记录玩家最近的走法,而走法的历史是用卡夫卡记录的。我希望将来自这两个数据源的数据流到一个数据库中,然后我的排行榜服务可以查询数据库以呈现每个排行榜的内容。我的数据速度一般(1K个游戏事件/秒)。我发现我可以使用这三个不同的数据库,有人使用过这些数据库中的任何一个来进行游戏排行榜吗?如果是这样的话,你能分享一下你在这样做的过程中遇到的好处或痛苦吗?根据所有三家公司的说法,他们都能够进行实时数据处理。

EN

回答 1

Stack Overflow用户

发布于 2020-08-06 09:52:39

你必须评估你所需要的规模和性能,我很难根据你提供的数据来估计它们。但我可以对使用其中一些系统进行功能比较。

第一个选项是通过查询DynamoDB本身来运行排行榜,您不需要任何额外的系统。这样做的好处很明显,就是少了一个要管理的组件。但是我假设您的排行榜需要复杂的逻辑来呈现,并且因为DynamoDB应用程序接口处理键/值,所以您必须从DynamoDB获取大量数据来执行每个查询来呈现排行榜。

您指定的第二个选项是弹性搜索。给出查询结果非常快的系统,因为它以倒排索引的形式存储数据。然而,你不能在你的DynamoDB数据和kafka流之间进行连接。但是你肯定可以在Elastic上运行很多并发查询。我假设你需要并发查询,因为你正在运行一个在线游戏,其中m个玩家同时访问排行榜。

第三个选项是Druid,它是数据采集和数据仓库的混合体。您可以存储大量的半结构化数据,但与Elastic不同的是,您需要一次将嵌套的json数据扁平化。我使用Druid进行大规模的分析处理,为我的仪表板提供动力,但它不支持像Elastic那样高的并发性。

Rockset似乎是一个更新的产品,是一种云上的托管服务。它说它建立了像Elastic这样的倒排索引,并且还支持JOIN。它可以自动跟踪来自DynamoDB (使用change-streams)和kafka的数据。我没有在网站上看到任何性能数字,但功能是非常兼容的,我将需要建立一个游戏排行榜。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63197688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档