This page tries to cover many aspects of choosing DynamoDB as the storage solution and tries to provide hints and guidance about the technology.
You have to consider many aspects which are described in this post, but overall, if you can’t predict your access patterns or are likely to change frequently, you need to run ad hoc queries on your data, then probably DynamoDB is not the best tool for you.
You should clearly understand your relational schema (all data is relational), and starting from the relational model, denormalize it into one or two tables fulfilling your access patterns. Some resources to get started:
- Data modeling (part 1)
- Data modeling (part 2)
- Advanced design patterns (part 1)
- Advanced design patterns (part 2)
- The What, Why, and When of Single-Table Design
- How DynamoDB scales where relational databases don't
- Example of modeling relational data in DynamoDB
- Instagram model from Alex DeBrie, with code https://github.com/alexdebrie/dynamodb-instagram#readme"