我希望把一些历史上的体育成果合并到一个数据库中,这将使我能够查询这些结果,以便将来构建应用程序和可视化。
我对这个领域的理解让我相信,我可以采取一种非关系的方法(比如亚马逊的DynamoDB),这样我就不必随着数据的大小和查询的增加而考虑数据库资源、大小等因素。
然后,我计划使用Amazon来处理数据的导入和对传入查询的响应。
我的两个问题是:
为了帮助理解第二个问题,如果这是一个关系数据库,表将如下所示。
发布于 2018-07-27 05:55:47
如果您的查询将有很多连接到这些表,关系数据库将是首选。虽然可以使用DynamoDB,但您将很难加入这些表。DynamoDB的特性可能使开发人员感到困难,这就是索引。你必须用哈希键搜索。所以你在选择指数时要小心。
然而,如果数据就像查询一样,例如ID 123,胜利者是运动员A。DynamoDB会蓬勃发展,因为使用它有好处(可伸缩性、最小管理,等等)
就我个人而言,当我列出一些东西(使用搜索、分页等)时,我不喜欢dynamoDB --当然,您可以构建一个搜索索引,但是对于更简单的应用程序来说,这将是过度的。
可选
如果您只对构建数据的可视化和聚合感兴趣,则可以使用redshift或S3来存储数据。并在稍后运行一些聚合函数。然后将聚合保存到dynamodb或rds中。
我认为dynamodb和RDS数据库中的数据仅由最终用户查询并使用。
https://stackoverflow.com/questions/51392994
复制相似问题