【问题标题】:What is the difference between Elasticsearch, Apache Druid, and Rockset? [closed]Elasticsearch、Apache Druid 和 Rockset 有什么区别? [关闭]
【发布时间】:2020-07-31 19:01:24
【问题描述】:

我正在开发一个游戏应用程序,我需要为我正在构建的排行榜提供实时数据。我已经阅读了一堆 stackoverflow 和公司博客——但老实说,我不确定哪一个最适合我的用例。我正在使用DynamoDB记录玩家最近的动作,并且动作的历史在kafka中。我希望将这两个数据源中的数据流式传输到数据库中,然后我的排行榜服务可以查询数据库以呈现每个排行榜的内容。我的数据速度适中(1K 游戏事件/秒)。我发现我可以使用这三个不同的数据库,有人使用这些数据库中的任何一个进行游戏排行榜吗?如果是这样,你能分享你在这样做的过程中遇到的好处或痛苦吗?根据所有 3 家公司的说法,他们能够做实时数据。

【问题讨论】:

    标签: elasticsearch rockset


    【解决方案1】:

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

    第一个选项是通过查询 DynamoDB 本身来运行排行榜,您不需要任何其他系统。显然,优势在于您需要管理的组件少了一个。但我假设你的排行榜需要复杂的逻辑来呈现,并且因为 DynamoDB api 处理键/值,你必须从 DynamoDB 中获取大量数据来执行每个查询来呈现排行榜。

    您指定的第二个选项是弹性搜索。很棒的系统,可以非常快速地提供查询结果,因为它将数据存储为倒排索引。但是,您将无法在 DynamoDB 数据和 kafka 流之间进行 JOIN。但你肯定可以在 Elastic 上运行大量并发查询。我假设您需要并发查询,因为您正在为一个在线游戏提供动力,其中 m 多个玩家同时访问排行榜。

    第三个选项 Druid 是数据湖和数据仓库的混合体。您可以存储大量的半结构化数据,但与 Elastic 不同的是,您需要在摄取时间内将嵌套的 json 数据展平。我曾使用 Druid 进行大规模分析处理以支持我的仪表板,但它不支持像 Elastic 一样高的并发性。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 2011-09-28
      • 2015-03-03
      • 1970-01-01
      • 2013-09-21
      • 2014-11-30
      • 1970-01-01
      相关资源
      最近更新 更多