Ich schreibe eine Software, die eine große Anzahl von Geräten über 30k verfolgt. (Wie Uber aber die Lage Informationen stammen aus verschiedenen Arten von GPS-Geräten)Speichern der lat langen Informationen eines bewegten Objekts in DynamoDB
- ich die Standortinformationen der Geräte alle 5 Sekunden
- Jetzt muss ich alle Informationen in der Datenbank halten, so dass es sein kann, zur Verfolgung von Geräten oder zum Auffinden von Geräten in Ihrer Nähe.
Hier ist, was ich geplant haben:
- ich eine Tabelle in Dynamo habe db Livetrack genannt, die die neuesten Standortinformationen der einzelnen Geräte
- Daten enthalten deviceid, tiestamp, Breite, Länge hält
Wie soll ich die DynamoDB Tabelle gestalten, dass es gerecht zu werden 30000 schreibt/60000 liest alle 5 Sekunden
- Was sollte meine Lese- und Schreibkapazität Einheiten sein.
- Ich werde AWS Cloud DynamoDB verwenden, sobald die Entwicklung abgeschlossen ist
- Soll ich DynamoTable nicht verwenden und Zwischenspeichern wie Redis verwenden?
In lokaler DynamoDB Installation Wenn ich nicht in der Lage bin 6 Geräte Daten und Lesedaten auf dem Gerät
gleichzeitig erstelltMeine Livetrack-Daten werden alle 5 Sekunden zu schreiben:
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
}
)