Amazon DynamoDB Deep Dive: Advanced Design Patterns for DynamoDB (DAT401)
Notes from watching AWS re:Invent 2018: Amazon DynamoDB Deep Dive: Advanced Design Patterns for DynamoDB (DAT401) - YouTube (slides).
A presentation worth watching to understand building DynamoDB solutions better.
- About 29:30 in speaker says “NoSQL is not a flexible database, it is an efficient database” as the speaker pushes on the importance of data modeling and understanding your use cases.
- Speaker’s idea is SQL is built for space efficiency and easy to join when you don’t know your problem, but CPU heavy - and NoSQL best when you model your data for your specific problem in the right structure, so is flexible for many problems, but not flexible to have 1 data structure for all problems.
- At some point DynamoDB Streams are mentioned, which are a feed of all data writes, and can be used by lambda to do aggregation functions and pre-compute results.
- About 43 minutes into the video as he talks transaction apis and you should almost always use just 1 table - take a look at this Schema - which I has to pause and study
- Table at 56:38 is an interesting artifact for a complex data modeling scenario that started a couple minutes before
- Best Practices for DynamoDB - Amazon DynamoDB
- Conclusions Slide:
- NoSQL does not mean non-relational
- The ERD still matters
- RDBMS is not deprecated by NoSQL
- Use NoSQL for OTLP or DSS at scale.
- Use RDBMS for OLAP or OLTP when scale is not important.
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/best-practices.html