【问题标题】:How to save Live and Historical Vehicle Location data in Amazon DynamoDB如何在 Amazon DynamoDB 中保存实时和历史车辆位置数据
【发布时间】:2017-12-05 01:20:21
【问题描述】:

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

  • 每 10 秒将存储每辆车的实时信息。
  • 会被处理成Live track单车
  • 该信息还将用于获取给定点和半径的附近车辆。
  • 我会用python代码

我遵循以下策略:

Hist table 保存设备历史信息

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

实时表格保存实时信息

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

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

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

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

【问题讨论】:

  • 您目前遇到了哪些扩展问题?

标签: python amazon-web-services amazon-dynamodb geohashing


【解决方案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 用户在收到 Throttling 错误后使用 Amazon SQS 队列临时存储数据,并使用稍后读取的后端进程这些消息并将它们插入到 DynamoDB 中。这允许为表提供 平均 吞吐量,而不是 峰值 吞吐量。

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

【讨论】:

    猜你喜欢
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 2021-10-14
    • 2016-09-01
    相关资源
    最近更新 更多