I have a dynamodb table. It has more than million records. Everyday several new records are added to our dynamodb table. I have use-case for which I want to study, the number of records created per day for the last 30 day period in our ddb. We don't populate any field which represents the record creation timestamp in our ddb.
On AWS console I could see dynamodb provide WCU, but since write capacity units consumed can vary for each record creation request I was not able to rely on this metric to figure out the count of records created.
I want to know if the metadata about record count along with timestamps is stored by dynamodb anywhere, which I could query upon?
Note : I want to strictly study the record count for past 30 days only.
You can use DynamoDB streams, and for each item created you can consume that in a Lambda function that updates another DynamoDB table with the count of items for that day.
That way you can easily tell how many items are created per day.
Alternatively you could update a CloudWatch metric with values for a single day, and then retrieve and visualise the number of items created using Cloudwatch metrics.
DynamoDB keeps metadata about number of items that is in the table which is created refreshed approximately every 6 hours. It's an approximate number, so if you're ok with approximates then you can call DescribeTable to obtain the Item count.