0
"ハッシュキー"のみを記述することで(私はソートキーを使用していません)AWS Dynamo DBにデータを書き込みます。 Dynamo Dbのデータが行の順序で格納されていないという問題が発生しています。レビューのためにコードと写真が添付されています。データはAWS Dynamo DBの行順に(oder)に格納されません
from __future__ import print_function # Python 2/3 compatibility
import boto3
import json
import decimal
import datetime
import time
dynamodb = boto3.resource('dynamodb')
# Helper class to convert a DynamoDB item to JSON.
class DecimalEncoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, decimal.Decimal):
if o % 1 > 0:
return float(o)
else:
return int(o)
return super(DecimalEncoder, self).default(o)
table = dynamodb.create_table(
TableName='Alarms',
KeySchema=[
{
'AttributeName': 'Date',
'KeyType': 'HASH' #Partition key
}
],
AttributeDefinitions=[
{
'AttributeName': 'Date',
'AttributeType': 'S'
},
],
ProvisionedThroughput={
'ReadCapacityUnits': 5,
'WriteCapacityUnits': 5
}
)
print("Table status:", table.table_status)
# Wait until the table exists.
table.meta.client.get_waiter('table_exists').wait(TableName='Alarms')
table = dynamodb.Table('Alarms')
with open("alarm.json") as json_file:
alarms = json.load(json_file, parse_float = decimal.Decimal)
for alarm in alarms:
FNB = alarm['FNB']
FRE = alarm['FRE']
MB = alarm['MB']
TB = alarm['TB']
TD1 = alarm['TD1']
TD2 = alarm['TD2']
TW = alarm['TW']
Date = str(datetime.datetime.now())
table.put_item(
Item={
'Date': Date,
'FNB': FNB,
'FRE': FRE,
'MB': MB,
'TB': TB,
'TD1': TD1,
'TD2': TD2,
'TW': TW,
}
)
newstr = json.dumps(alarm, cls=DecimalEncoder).replace('\"','').strip('{}')
print('Date:', Date,',', newstr)
time.sleep(1)
ダイナモDBで予想される出力(募集出力):(ダイナモDBに登録された)来
Date: 2016-11-09 08:57:20.309674 , FRE: 0, MB: 0, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:21.695486 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:22.870489 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 1
Date: 2016-11-09 08:57:23.983862 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 1, TB: 1
Date: 2016-11-09 08:57:25.101755 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 1, TD1: 1, TB: 1
Date: 2016-11-09 08:57:26.213475 , FRE: 0, MB: 1, TW: 0, FNB: 1, TD2: 1, TD1: 1, TB: 1
Date: 2016-11-09 08:57:27.324465 , FRE: 0, MB: 0, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:28.435475 , FRE: 0, MB: 0, TW: 0, FNB: 1, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:29.546471 , FRE: 0, MB: 0, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:30.658182 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:31.768494 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 1
Date: 2016-11-09 08:57:32.886541 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 1, TB: 1
Date: 2016-11-09 08:57:34.046496 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 1, TD1: 1, TB: 1
Date: 2016-11-09 08:57:35.222471 , FRE: 0, MB: 1, TW: 0, FNB: 1, TD2: 1, TD1: 1, TB: 1
Date: 2016-11-09 08:57:36.339477 , FRE: 0, MB: 0, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:37.450506 , FRE: 0, MB: 0, TW: 0, FNB: 0, TD2: 1, TD1: 0, TB: 0
Date: 2016-11-09 08:57:38.563476 , FRE: 0, MB: 0, TW: 0, FNB: 1, TD2: 1, TD1: 0, TB: 0
Date: 2016-11-09 08:57:39.675500 , FRE: 0, MB: 0, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:40.789492 , FRE: 0, MB: 0, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:41.900886 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:43.014493 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 1
Date: 2016-11-09 08:57:44.125980 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 1, TB: 1
出力
Date: 2016-11-09 08:57:26.213475 , FRE: 0, MB: 1, TW: 0, FNB: 1, TD2: 1, TD1: 1, TB: 1
Date: 2016-11-09 08:57:27.324465 , FRE: 0, MB: 0, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:28.435475 , FRE: 0, MB: 0, TW: 0, FNB: 1, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:29.546471 , FRE: 0, MB: 0, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:20.309674 , FRE: 0, MB: 0, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:21.695486 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:22.870489 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 1
Date: 2016-11-09 08:57:23.983862 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 1, TB: 1
Date: 2016-11-09 08:57:25.101755 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 1, TD1: 1, TB: 1
Date: 2016-11-09 08:57:36.339477 , FRE: 0, MB: 0, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:37.450506 , FRE: 0, MB: 0, TW: 0, FNB: 0, TD2: 1, TD1: 0, TB: 0
Date: 2016-11-09 08:57:38.563476 , FRE: 0, MB: 0, TW: 0, FNB: 1, TD2: 1, TD1: 0, TB: 0
Date: 2016-11-09 08:57:39.675500 , FRE: 0, MB: 0, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:40.789492 , FRE: 0, MB: 0, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:41.900886 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:43.014493 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 1
Date: 2016-11-09 08:57:44.125980 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 1, TB: 1
Date: 2016-11-09 08:57:29.546471 , FRE: 0, MB: 0, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:30.658182 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
Date: 2016-11-09 08:57:31.768494 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 1
Date: 2016-11-09 08:57:32.886541 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 0, TD1: 1, TB: 1
Date: 2016-11-09 08:57:34.046496 , FRE: 0, MB: 1, TW: 0, FNB: 0, TD2: 1, TD1: 1, TB: 1
Date: 2016-11-09 08:57:35.222471 , FRE: 0, MB: 1, TW: 0, FNB: 1, TD2: 1, TD1: 1, TB: 1
Date: 2016-11-09 08:57:36.339477 , FRE: 0, MB: 0, TW: 0, FNB: 0, TD2: 0, TD1: 0, TB: 0
だから、それはダイナモDBに順に格納されていません。この問題がどのように解決されたか。
DynamoDBが挿入注文を維持していないことを意味しますか? – notionquest
@notionquestはいそうです。広告掲載オーダーは維持されません。 – user3831290