Identify items in an Amazon DynamoDB table that haven't been accessed and move them to Amazon S3.
Kirk Kirkconnell

Kirk Kirkconnell @nosqlknowhow

About: 26+ yrs in databases, NoSQL database expert, disaster recovery specialist, developer, former DevOps admin for big companies.

Location:
WA State, USA
Joined:
Sep 27, 2019

Identify items in an Amazon DynamoDB table that haven't been accessed and move them to Amazon S3.

Publish Date: Oct 25 '21
5 0

Question: How to identify items in an Amazon DynamoDB table that haven't been accessed for a time and move them to Amazon S3.

Answer: There is no built in way for DynamoDB to know which items have or have not been accessed lately. More than likely, your best option is to do the following:

Prerequisites:

  1. Have TTL enabled on the table and a TTL attribute on every item in the table. If not, you will have to do that first.
  2. If you do not already update TTL attributes on items when they are accessed, you must change your application code to update the TTL attribute on an item when you access that item. Otherwise none of this will work.

With that in place, enable DynamoDB Streams. Then create a Lambda function that watches DDB Streams specifically for TTL Deletes which reads from the table's stream, then write the expired items to S3. Here is an older blog post which should still be mostly relevant for this purpose.

Comments 0 total

    Add comment