我正在编写一个跟踪大约 30k 的大量设备的软件。(像优步,但位置信息来自不同类型的 GPS 设备)
- 我每 5 秒获取一次设备的位置信息
- 现在我需要将所有信息保存在数据库中,以便它可以用于跟踪任何设备或查找您附近的设备。
这是我的计划:
- 我在 Dynamo db 中有一个名为 Livetrack 的表,它保存了每个设备的最新位置信息
- 数据包含deviceid、tiestamp、纬度、经度
我应该如何设计 DynamoDb 表,使其每 5 秒可以处理 30000 次写入/60000 次读取
- 我的读写能力应该是多少单位。
- 开发完成后,我将使用 aws cloud DynamoDB
- 我应该不使用 DynamoTable 并使用 redis 之类的缓存吗?
在本地 dynamodb 安装中,如果我无法每 5 秒写入 6 个设备数据并同时读取设备数据
我的 Livetrack 数据创建为:
from __future__ import print_function # Python 2/3 compatibility
import boto3
dynamodb = boto3.resource('dynamodb', region_name='us-west-2', endpoint_url="http://localhost:8000")
table = dynamodb.create_table(
TableName='LocationOne',
KeySchema=[
{
'AttributeName': 'deviceid',
'KeyType': 'HASH' #Partition key
}
],
AttributeDefinitions=[
{
'AttributeName': 'deviceid',
'AttributeType': 'S'
}
],
ProvisionedThroughput={
'ReadCapacityUnits': 10,
'WriteCapacityUnits': 10
}
)