My application offers a WRITE API that writes and deletes data to DynamoDB, and we want to store an audit log of what happened, like this:
timestamp, account, ADD/DELETE, information
We want to be able to satisfy queries like:
- For account X, give me all events
- For account X, give me all events where
information=Y
- For account X, give me all events where
information=Y
andtimestamp>Z
Would AWS Timestream be a good candidate solution for this? It can support queries like
SELECT * FROM "database"."table"
WHERE time between ago(15m) and now()
ORDER BY time DESC
LIMIT 10
which would be fitting our use case.
But it says on the documentation:
The ability to analyze massive amounts of data quickly and efficiently is one of Timestream’s greatest strengths. A single query executing over terabytes or even petabytes of data may have thousands of machines working on it all at the same time.
We don't need this ability. We are not analyzing data, we just need to retrieve it.
Also:
Timestream offers two data stores – an in-memory store and a cost-effective magnetic store
I don't think we need the in-memory store, as we don't care too much for speed of the response.