0

我正在尝试在 DynamoDB 中处理和存储大约 30k 车辆的位置信息。

  • 每辆车的实时信息将每 10 秒存储一次。
  • 它将被处理为实时跟踪单车
  • 该信息还将用于获取给定点和半径的附近车辆。
  • 我将使用 python 代码

我遵循以下策略:

历史表保存设备历史信息

  • 数据将是:deviceid(分区键)、lat、lon、timestamp(排序键)、geohash

实时表保持实时信息

  • 数据将是:deviceid(分区键)、lat、lon、timestamp、geohash(sortkey)

  • 地理哈希有助于搜索附近的车辆

  • 表格信息将被更新,以便仅显示 30k 数据,在给定时间为每辆车提供一个数据。

在每 10 秒完成一次写入的情况下,如何改进 Hist 和 Live 表读取和写入的缩放?

4

1 回答 1

1

您可以在创建时指定 DynamoDB 表的读取和写入吞吐量,并且可以在以后根据需要修改吞吐量。此外,DynamoDB 允许突破这些定义的吞吐量限制

要获得表的全部吞吐量,请使用范围广泛的分区键,以便将请求分发到许多不同的服务器。

DynamoDB 现在还支持 Auto Scaling,因此它可以根据使用情况自动扩展。

为了改进最终一致读取的扩展,您还可以将内存加速与 DAX 结合使用

突发写入的情况下(写入吞吐量可能不足),一些 AWS 用户在收到限制错误后使用 Amazon SQS 队列临时存储数据,后端进程稍后会读取这些消息并将它们插入到 DynamoDB 中。这允许为平均吞吐量而不是峰值吞吐量供应表。

底线:您应该能够通过增加表的吞吐量来避免大多数扩展问题。其他技术(例如上面详述的那些)可以提供更大的规模。

于 2017-07-01T06:02:55.013 回答