DynamoDBでQuery

一つのパーティションの中に26万件データが入っている状態でQueryをいっぱい試してみたけど、1回4KBくらいの読み込みだと、0.01秒くらい。

大したことないな。

>>> sparse.item_count
263132
>>> times = []
>>> for i in range(100):
...     before = time.time()
...     res = sparse.query(
...         TableName='sparse-data',
...         KeyConditionExpression='sid=:sid AND unixtime BETWEEN :start_dt AND :end_dt',
...         ExpressionAttributeValues={
...             ':sid': 'ABC-1234567',
...             ':start_dt': decimal.Decimal(start_dt.timestamp()),
...             ':end_dt':   decimal.Decimal(end_dt.timestamp())
...         },
...         ReturnConsumedCapacity='TOTAL'
...     )
...     times.append(time.time() - before)
...     print('consumed capacity: {0:.2f}'.format(res['ConsumedCapacity']['CapacityUnits']))
...     time.sleep(0.5)
>>> sum(times) / len(times)
0.019462196826934813