【发布时间】:2017-12-01 23:08:54
【问题描述】:
我正在编写一个跟踪大约 30k 的大量设备的软件。 (与 Uber 类似,但位置信息来自不同类型的 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
}
)
【问题讨论】:
标签: amazon-dynamodb dynamo-local