Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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_Aws Lambda_Amazon Dynamodb_Amazon Dynamodb Streams - Fatal编程技术网

Amazon web services 使用单表体系结构时,DynamoDB流计费两次

Amazon web services 使用单表体系结构时,DynamoDB流计费两次,amazon-web-services,aws-lambda,amazon-dynamodb,amazon-dynamodb-streams,Amazon Web Services,Aws Lambda,Amazon Dynamodb,Amazon Dynamodb Streams,我目前正在从事一个项目,我使用DynamoDB作为我的nosql数据库。在开始之前,我试图学习如何建模nosql数据库,因为它与我们已知的关系数据库确实不同。我学会了我必须坚持单表模式我使用DynamoDB Streams来聚合一些数据,例如产品的客户数量(还有一些更复杂的情况)。因为我只有一个表,所以我的lambda函数写在流来自的同一个表中将新客户添加到表a->DynamoDB Stream triggers Lambda for Table a->Lambda更新表a中的一行->Dynam

我目前正在从事一个项目,我使用DynamoDB作为我的nosql数据库。在开始之前,我试图学习如何建模nosql数据库,因为它与我们已知的关系数据库确实不同。我学会了我必须坚持单表模式

我使用DynamoDB Streams来聚合一些数据,例如产品的客户数量(还有一些更复杂的情况)。因为我只有一个表,所以我的lambda函数写在流来自的同一个表中
将新客户添加到表a->DynamoDB Stream triggers Lambda for Table a->Lambda更新表a中的一行->DynamoDB Stream triggers Lambda for Table a->Lambda函数终止
。如果我理解正确,这个场景可能会导致无限循环,因为第一个插入触发器触发一个更新触发器。这是我在lambda函数中转义的东西

我现在的问题是
每次我在数据库中插入数据时,是否会为两个lambda函数和两个DynamoDb流付费?
如果是,我应该忽略nosql db的最佳实践方式,将表拆分为多个表,还是应该投资?因为在这种情况下我的账单要加倍
将我的表拆分为多个表的缺点是什么?会有这么大的缺点吗?

一般来说,我建议不要使用这种循环。在分布式系统中,依赖循环可能会导致各种不期望的效果。在基于DDB+Lambda的体系结构中,这些影响中的一些已经消除,但我仍然会尽量避免。除此之外,在这种体系结构中还存在无限循环Lambda调用的风险。这可能导致巨大的财务价格。即使您编写了最好的代码(甚至实现了针对此类循环的安全检查),我认为最好的做法是设计不可能实现循环的体系结构

因此,我肯定会将DDB表一分为二


拆分为两个表的负面影响是:您的应用程序现在可能需要检索两个表中的项目,而不是检索单个项目,以获得相同数量的信息。

谢谢您的回答@ItayMan!你能告诉我当我把它分成多张表时,底片是什么吗?我真的很好奇,因为它是用一个表写下来的,但不完全是这样why@AhmetKazaman例如我在回答中加了一段。无论如何,我不知道在DDB或NoSql DBs中一般都会有这样一个笼统的原则,即“必须坚持一个表模型”。我可以想象这样一个原则在某些情况下是有效的。但是,你能给我指出任何说明这一原则的材料吗