Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services DynamoDB是否适用于高事务处理应用程序?_Amazon Web Services_Amazon Dynamodb_Rdbms_Consistency_Cost Management - Fatal编程技术网

Amazon web services DynamoDB是否适用于高事务处理应用程序?

Amazon web services DynamoDB是否适用于高事务处理应用程序?,amazon-web-services,amazon-dynamodb,rdbms,consistency,cost-management,Amazon Web Services,Amazon Dynamodb,Rdbms,Consistency,Cost Management,我正在编写赛马赔率聚合应用程序,它将从不同的博彩网站获得数据。首先,我将每10秒从3个网站获取数据(以后可能会上升到10个以上)。因此,在3个网站中,每天大约有10000条记录(跑步者),每条记录可以每10秒读取3次,如果赔率发生变化,则会进行更新 DynamoDB适合这种应用还是我应该坚持使用 关系数据库管理系统 当我同时更新同一跑步者(记录)的赔率(来自不同网站)时,DyanmoDB是否存在一致性问题 该应用程序可能会扩展到其他运动和比赛,并获取数据 从更多的网站来看,DyamoDB会产生巨

我正在编写赛马赔率聚合应用程序,它将从不同的博彩网站获得数据。首先,我将每10秒从3个网站获取数据(以后可能会上升到10个以上)。因此,在3个网站中,每天大约有10000条记录(跑步者),每条记录可以每10秒读取3次,如果赔率发生变化,则会进行更新

  • DynamoDB适合这种应用还是我应该坚持使用 关系数据库管理系统
  • 当我同时更新同一跑步者(记录)的赔率(来自不同网站)时,DyanmoDB是否存在一致性问题
  • 该应用程序可能会扩展到其他运动和比赛,并获取数据 从更多的网站来看,DyamoDB会产生巨大的成本,因为它会进行更多的读写操作吗
  • 更新-2020年7月21日上午9:30 记录结构如下所示。将有一些定期服务运行,每个服务负责一个赌注。服务可能会读取记录并同时更新。计算列值将基于“赌注”列的值。因此,我希望能够始终如一地阅读博彩业最新价值一栏

      RUNNER       EVENTID  BOOKIE1     BOOKIE2     BOOKIE3     BOOKIE...    CALCULATED
      Runner 1     12345    Odds1       Odds2       Odds3       Odds...      Value
      Runner 2     67890    Odds1       Odds2       Odds3       Odds...      Value
    
    更新-2020年7月21日下午12:20

    在更新我的帖子后,我脑海中突然出现了一些数字,DynamoDB似乎非常昂贵。这是我的号码,如果有错误请告诉我

    假设:

  • 10000名跑步者
  • 大约一个月内每10秒就有270000个电话
  • 3家赌场
  • 假设每个记录/项目小于4KB
  • 一个RCU每月可读取520万次(在某处找到)
  • 一个WCU每月可读取250万次
  • 每月所需的区域协调单位: (3*10000*270000)/5.2磨机=1558 RCU

    每月所需的WCU:
    (3*10000*270000)/2.5 mill=3240 WCU

    对于使用DynamoDb的这种情况,建议使用DAX(),这使得Dyanamo非常合适

    关于一致性,这将取决于您的数据模型,并且随着它的发展,但是带有DAX的Dynamo处理得很好,下面是DAX+Dynamo的一致性建议链接:


    最后,是的,您在任何云提供商中使用的所有服务都有一个I/O配额或费率,因此当应用程序增长时,价格将达到。

    对于使用DynamoDb的这种情况,建议使用DAX(),这使得Dyanamo非常适合

    关于一致性,这将取决于您的数据模型,并且随着它的发展,但是带有DAX的Dynamo处理得很好,下面是DAX+Dynamo的一致性建议链接:


    最后,是的,您在任何云提供商中使用的所有服务都有一个I/O配额或速率,因此当应用程序增长时,价格也会随之增长。

    DynamoDB是为性能和可伸缩性(特别是针对读取)而构建的,它支持

    事实上,虽然关系数据库使用DynamoDB,但作为NoSQL键值的DynamoDB使用基本模型。这与一致性(保证事务在响应成功之前已写入磁盘)等功能交换,以获得尖端性能

    您当然可以使用DynamoDB,但您需要注意其局限性,例如,您不应该同时尝试对同一项目进行多个更新。您提到每10秒执行一次,以便流程可以聚合更改,然后应用更改

    如果您关心实时数据,那么您将需要使用一个工具来确保您读取的是最准确的数据

    通过位于DynamoDB前面的内置缓存层,您可以降低一些读取一致性成本

    此外,如果您的使用周期较短,DynamoDB提供的内置功能会降低您在安静时支付的容量(读写)

    除此之外,如果您希望在维护事务写入的同时提高性能,Redis是一个内存中数据存储支持。有一个AWS管理的版本

    <>当然还有关系数据库选项,虽然这将允许事务性的写入,但是您需要考虑读取性能(无论是通过还是通过)。
    最终的选择取决于你,每个选项都有局限性,但最终取决于你希望如何使用它。MadioDB可能是最便宜的选择,但您需要考虑架构对您的预期需求。

    < P> DimaDoB是为性能和可扩展性(特别是目标读取)而构建的,它支持./P> 事实上,虽然关系数据库使用DynamoDB,但作为NoSQL键值的DynamoDB使用基本模型。这与一致性(保证事务在响应成功之前已写入磁盘)等功能交换,以获得尖端性能

    您当然可以使用DynamoDB,但您需要注意其局限性,例如,您不应该同时尝试对同一项目进行多个更新。您提到每10秒执行一次,以便流程可以聚合更改,然后应用更改

    如果您关心实时数据,那么您将需要使用一个工具来确保您读取的是最准确的数据

    通过位于DynamoDB前面的内置缓存层,您可以降低一些读取一致性成本

    此外,如果您的使用周期较短,DynamoDB提供的内置功能会降低您在安静时支付的容量(读写)

    除此之外,如果您希望在维护事务写入的同时提高性能,Redis是一个内存中数据存储支持。有一个AWS管理的版本

    <>当然还有关系数据库选项,虽然这将允许事务性写入,但是您需要考虑读取性能(WHESS)。