我正在尝试处理和存储DynamoDB中约30万辆汽车的位置信息。
我遵循以下策略:
历史记录表保存设备历史信息
直播表保存实时信息
数据将是:deviceid(分区键),lat,lon,timestamp,geohash(sortkey)
geo hash有助于搜索附近的车辆
如何改进Hist和Live表的读取和写入读取,写入每10秒完成一次?
答案 0 :(得分:1)
您可以在创建时指定DynamoDB表的Read and Write throughput,如有必要,可以稍后修改吞吐量。此外,DynamoDB允许bursting beyond these defined throughput limits。
要获取表的完整吞吐量use a wide range of Partition Keys,以便将请求分发到许多不同的服务器。
DynamoDB现在also supports Auto Scaling,因此它可以根据使用情况自动扩展。
为了改进扩展最终一致性读取,您还可以使用In-Memory Acceleration with DAX。
在突发写入(可能写入吞吐量不足)的情况下,某些AWS用户在收到限制错误后使用Amazon SQS队列临时存储数据,后端进程读取后端进程这些消息并将它们插入DynamoDB。这允许为平均吞吐量而非峰值吞吐量配置表。
底线:您应该可以通过提高表的吞吐量来避免大多数扩展问题。其他技术(如上面详述的那些技术)可以提供更大的规模。