使用哪个数据库进行游戏分析?

问题描述 投票:0回答:2

我们正在构建一个包含许多游戏的应用程序。孩子们在玩这些游戏时会学习数学。所有的用户个人资料数据、游戏数据和课程/问题数据都存储在应用程序中,并将同步到服务器端的 MySQL 数据库。

我们还希望捕获、分析和改进我们的游戏的大量事件数据。这些事件可能是课程的开始、触摸游戏对象、选择正确的游戏对象但目标错误、回答正确但超时等等。我们预计孩子们玩的每个游戏都会有 100 行。此外,存储的数据将取决于事件的类型。

数据库应该允许我们分析数据并回答问题,例如哪些游戏对孩子来说很难,哪些课程对孩子来说太简单,来自某些国家的孩子是否发现某些课程很难,每个游戏需要多长时间能够吸引孩子的注意力等等。

哪个数据库允许我们存储如此多不同类型的事件,每天扩展到数百万行并允许所有这些类型的分析?鉴于数据模型不断变化的性质,NoSQL 似乎是一个显而易见的选择。但哪一个可以让我们进行所有这些分析。或者我们应该选择 Hadoop / Hive?

提前致谢。

analytics hbase hive
2个回答
0
投票

虽然您可以使用 Hadoop/Hive 来完成此操作,但您不会获得实时性能,因为 Hive 最适合批处理之类的东西。在这种情况下,Hbase 将是更好的选择。您可以创建 OLAP 数据立方体之类的东西,其维度可以是您指定的信息,例如会话信息、每个孩子的信息等。或者您可以将所有这些信息序列化为 JSON 对象,然后将它们存储在 Hbase 单元中。您还可以将每个事件存储在单独的单元格中,但这会消耗不必要的空间,并且在取回数据时效率不高。

HTH


0
投票

这是一个非常古老的问题,在近 12 年后的 2024 年,它仍然作为首要结果出现。因此我想提供更新。

如果您想在 2024 年从游戏平台中获得实时分析,您可能需要使用一些更现代的系统,包括:

  • Apache Pinot(大规模实时 OLAP;实际的列存储;披露:我在 StarTree 工作,它由 Apache Pinot 提供支持)。
  • ClickHouse(实时 OLAP;实际列存储;仅限于 <1,000 QPS per replica(
  • MongoDB(更多 OLTP 和 NoSQL,但很多商店都使用它)
  • ScyllaDB(更大规模的 NoSQL OLTP;宽列)——在 2024 年使用它代替 HBase
  • Postgres(SQL OLTP,不过是数据的瑞士军刀)

实际上有数百个现代数据库可供选择。尽管 HBase 仍然存在,但它不会是我的第一选择。尝试确定您是否真的想要/需要一个完整的分析数据库,在这种情况下,您可能需要一个实际的列存储数据库,或者您是否只想从操作数据存储中进行一些分析。

另外,需要明确的是:像 ScyllaDB 或 HBase 这样的宽列数据库实际上是行存储;不是列存储。

© www.soinside.com 2019 - 2024. All rights reserved.