kevinhakanson.com

Amazon DynamoDB Deep Dive: Advanced Design Patterns for DynamoDB (DAT401)

December 04, 2018 #aws #dynamodb #nosql #database

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