Database 关系型与非关系型数据库-体育成绩&;模式

Database 关系型与非关系型数据库-体育成绩&;模式,database,nosql,aws-lambda,amazon-dynamodb,Database,Nosql,Aws Lambda,Amazon Dynamodb,我希望将一些历史体育成绩整合到一个数据库中,这将允许我查询它们,以便将来构建应用程序和可视化 我对这一领域的理解使我相信我可以采用非关系方法(如Amazon的DynamoDB),这样我就不必考虑数据库资源、大小等,因为数据的大小以及对数据的查询在增长 然后,我计划使用AmazonLambda处理数据导入和对传入查询的响应 我的两个问题是: 这是有效的方法吗 非关系模式会是什么样子 为了帮助理解第二个问题的上下文,如果这是一个关系数据库,那么表的外观应该是这样的 事件 竞赛(存储结果和相关字

我希望将一些历史体育成绩整合到一个数据库中,这将允许我查询它们,以便将来构建应用程序和可视化

我对这一领域的理解使我相信我可以采用非关系方法(如Amazon的DynamoDB),这样我就不必考虑数据库资源、大小等,因为数据的大小以及对数据的查询在增长

然后,我计划使用AmazonLambda处理数据导入和对传入查询的响应

我的两个问题是:

  • 这是有效的方法吗
  • 非关系模式会是什么样子
为了帮助理解第二个问题的上下文,如果这是一个关系数据库,那么表的外观应该是这样的

  • 事件
  • 竞赛(存储结果和相关字段的地方)
  • 运动员
  • 团队

如果您的查询将有大量连接到这些表,则最好使用关系数据库。虽然使用DynamoDB是可能的,但是加入这些表会很困难。DynamoDB的特性使开发人员很难使用索引。您必须使用哈希键进行搜索。因此,在选择索引时必须小心

但是,如果数据就像一个查找,例如race ID 123,则获胜者是运动员a。DynamoDB将蓬勃发展,因为使用它有很多优点(可扩展性、最小管理等)

就我个人而言,我不喜欢dynamoDB在列出某些东西(使用搜索、分页等)时,您当然可以构建搜索索引,但对于更简单的应用程序,这将是一种过分的做法

可供替代的 如果您只对构建数据的可视化和聚合感兴趣,那么可以使用红移或S3来存储数据。然后运行一些聚合函数。然后将聚合保存到dynamodb或rds中


我考虑了DeaDoDB和RDS数据库的数据,这些数据只由最终用户查询并使用.< /P>谢谢肯德里克。这很有帮助。首先,我将尝试沿着DynamoDB的路径,看看在概念验证过程中我是否发现自己受到了限制。我可以看出RDS如何可能更好地工作,但我更希望您指出的最小管理工作和可扩展性。