【发布时间】:2016-03-29 14:16:18
【问题描述】:
我们已经使用 Couchbase 大约两年了,但出于多种原因,我们最终决定改用 Amazon DynamoDB 服务。
现在我开始将数据迁移到 dynamodb。首先一切都很好,并且按预期进行,但一段时间后,发电机的响应时间越来越长,迁移过程也越来越慢。
我试图改变我的策略,但没有成功。
我可以做些什么来增加响应时间?
基本上,我正在扫描一个 SQL 表,每个查询获取 100 个项目,然后要求 Couchbase 检索我想要的关于这 100 个项目的数据。起初我的响应时间很长(如下图所示)。
以下信息可能会有所帮助:
- 我正在运行带有节点 v 4.4.1 的 Ubuntu 14.04 的 ec2 微型服务器上运行迁移代码。
- 查看图表后,我开始测量每个 dynamodb 请求的时间(所以我一开始不知道平均值是多少),大约 150,000 个请求的平均响应时间为 800 毫秒(仅 get & put,没有批处理命令或查询)
- 我将项目存储在两个表中,一个使用整数哈希键,另一个使用整数哈希和排序键
- 第二张表很大(有大约 440 万个项目并且还在增加)
【问题讨论】:
-
您在“扫描 SQL 表”?但是您只列出了 Couchbase 和 DynamoDB,它们不是 SQL 数据库。您的意思是说您正在对 DynamoDB 表执行全表扫描?在我看来,您的整个问题仅仅是由于 DynamoDB 表上的预置吞吐量太低。您预置的吞吐量设置可能是与此问题相关的最重要信息,而您并未包含该信息。
-
由于我们的系统是如何设计的,我们结合使用 Mysql 和 Couchbase,在 Mysql 中我们存储简单的数据,但在 Couchbase 中我们存储整个 json 对象。现在我们想要摆脱 couchbase 并转向 Dynamodb。如附图所示,该表的预置吞吐量为 125(红色水平线),消耗的吞吐量越来越低(开始时约为 100,然后下降到 20,然后低于 5)
-
如果您知道“热分区键”,那么您配置的容量就无关紧要了,因为单个分片只能处理 N 个请求。
标签: amazon-web-services amazon-dynamodb