4.7 out of 5
4.7
64 reviews on Udemy

Amazon DynamoDB Data Modeling for Architects & Developers

Proven design patterns. best practices, tips on saving costs and more
Instructor:
Rajeev Sakhuja
831 students enrolled
English [Auto] More
Use DynamoDB Data Modeling patterns
Apply DynamoDB Best practices
Leverage the right DynamoDb features in your applications
Analyze use cases for DynamoDB
Understand how DynamoDB work under the covers

Note:

  • This course does NOT use AWS console for showing you basic DynamoDB operations

  • This course does NOT focus on just coding

This course primarily focusses on Data Modeling practices and patterns for Amazon DynamoDB. You will learn DynamoDB best practices, tips and techniques for building modern and cost effective applications/microservices. At a high level, course is divided into 2 parts:

Part-1            Objective: Build a solid understanding of DynamoDB

  • How DynamoDB works under the covers?

  • Hands-on exercises to try out the DynamoDB API(s) using CLI and Python code

  • Feature/capability comparison with relational database

Part-2           Objective: Learn to apply DynamoDB design patterns

  • Learn DynamoDB data modeling process

  • How to apply patterns to address business requirements

  • Analyze the access patterns and identify the right pattern to use

  • Hands-on exercises to build a data model for a banking use case (refer:  ACME case study)

Tools in use

  • NoSQL workbench

  • Local DynamoDB for model development & testing

  • AWS cloud account for testing (minimal use)

  • An integrated development environment (like Visual Studio Code)

  • Python – if you would like to run the code samples on your machine

  • Git client

Is this course for me?

Yes – if you are an Architect responsible for designing apps on DynamoDB

Yes – if you are a Developer and aspiring to become an architect

Yes – if you are a DBA and looking to expand your skills to NoSQL databases

Yes – if you are a Technologist who is curious on how DynamoDB works under the covers

No  – if you are just looking for basic “How-to” tutorial on DynamoDB

No – if you are looking for coding guidance DynamoDB apps

Course approach

Course does not assume that you already know DynamoDB. For that reasons, I am first covering the basics of DynamoDB. But unlike other courses, I will not just show you how-to use DynamoDB rather I will show you how DynamoDB works under the covers !! I strongly believe that to effectively use a database, an architect MUST understand how database technology works under the covers.

Data modeling is an iterative process. I am sharing a prescriptive guidance on the process and then showing step-by-step how to apply the process. As a case study I am using an example of ACME bank (a fictitious retail bank). Throughout the course we will be applying the process to ACME bank use cases to evolve a full blown DynamoDB data model.

Case study : ACME Bank

A fictitious bank that has embarked on a journey to modernize its retail banking systems. You are the Lead Architect for the retail banking modernization initiative. It is your responsibility:

  • To  work with business owners to understand the requirements

  • To model the data for DynamoDB

  • Prove/Disprove that DynamoDB will meet the application needs

  • Educate stakeholders on DynamoDB capabilities

  • Help ACME Bank CTO to make a decision on whether to use DynamoDB or not

Introduction

1
Introduction

Raj's introduction !!

2
Course outline & How to get the most out of this course

I will provide you an outline of the course and make suggestions on how to get the most out of this course

Tools, Local Development Environment

1
Setup Local DynamoDB and NoSQL Workbench

Setup local development environment

2
Exercise: NoSQL Workbench walkthrough

You will learn about NoSQL Workbench capabilities

3
Exercise: Use CLI, Workbench with Local Table

You will get hands on experience with using CLI and Workbench against the local DynamoDB 

4
Setup IDE and Git Repository

Setup VSC and clone the course repository

Amazon DynamoDB Fundamentals

1
DynamoDB: A Logical View

In this lesson I will provide you a logical view of the DynamoDB service and introduce you to basic terminology.

2
Table capacity fundamentals

Learn how DynamoDB pricing works. You learn the terms WCU/RCU/WRU/RRU

3
Table capacity modes

Learn about the two capacity modes supported by DynamoDB.

4
Exercise: Try out the capacity modes

In this exercise you will experiment with capacity modes

5
Item Attributes & Data Types

DynamoDB is NOT type-less, it supports multiple types of data

6
Exercise: Create a test model

In this exercise you will create a simple model

7
DynamoDB Operations

Learn about the control & data plane operations

8
Control Plane Operations

Learn the DynamoDB Control Plane API

CRUD: Create API

1
Writes : Under the hood

Learn how Item Writes work under the covers

2
API: PutItem, BatchWriteItem, Condition Expressions (7:14)

Learn about the data plane API

3
Exercise: Add Items to Student Table

Set BatchWriteItem API in action

CRUD: Retrieve API

1
Reads : Under the hood

Learn how Reads work under the covers

2
API: GetItem, BatchGetItem, Scan

Checkout the GetItem, Scan and BatchGetItem in action

3
Queries : Under the hood
4
Queries & Key Condition Expression

Learn how queries are processed and how to use the query operation

CRUD: Update & Delete API

1
Update & Delete : Under the hood

Learn how Update and Deletes work under the covers

2
API: UpdateItem

Try out the UpdateItem and DeleteItem API

3
API: DeleteItem

Try the DeleteItem and BatchWriteItem API

CRUD : PartiQL Queries

1
CRUD : PartiQL Statements & API

Learn how to use PartiQL queries with DynamoDB

DynamoDB Secondary Indexes

1
Indexes : Under the hood

Learn the differences between Relational database indexes and DynamoDB indexes. Learn about the types of indexes and which one to use when.

2
Local Secondary Index (LSI)

Deep dive into LSI

3
Hands-On: Local Secondary Index

Try out an LSI

4
Global Secondary Index (GSI)

Deep dive into GSI

5
Hands-On: Global Secondary Index

Try out a GSI

6
Hands-On: Model the game player

Single Table Design

1
Single Table Vs. Multiple Table Design

Learn the ideas behind Single Table Design and why it is important to use it for DynamoDB

2
Single table modeling process

Learn the process of Single Table Design/modeling process

Case Study : ACME Bank

1
ACME Bank Transformation Journey

ACME Bank is a fictitious company that has decided to use DynamoDB for their retail banking systems. You are the lead architect who is given the responsibility to design the DynamoDB data model.

2
ERD and Access patterns

In this lesson we will go deeper into ERD and Access patterns that need to be addressed with DynamoDB model

Modeling : Entities

1
How to model an entity?

Learn how to model entities

2
Hands-On: Design the Customer Entity

Apply the entity model to ACME retail banking data model

Modeling : Primary Keys

1
Patterns for primary key

Learn the patterns for defining the primary key for items

2
Hands-On: Apply best practices for key

Address the issue with primary key defined for the item in earlier iteration

Modeling : One to Many Relationships

1
Patterns for one-to-many relationships

Learn the patterns used for designing one-to-many relationship between entities

2
Analyze : Customer-Account Relationship

Analyze the relationship between customer and account entity

3
Hands-On: Embedding with Secondary Index

Apply an appropriate pattern to ACME data model  - design the relationship between account and customer

Modeling : Secondary Indexes

1
Hands-On: Add index for accessing customer on account

Address some of the customer access patterns with secondary indexes

2
Hands-On: Model the transaction entity

Model the transaction entity

3
Analysis : Taking advantage of sparse indexes

Analyze the remaining access patterns to see if you can take advantage of Sparse indexes.

4
Hands-On: Add a sparse index for Customer-Txns

Implement a Sparse GSI for the Cust & Txn access pattern identified in earlier lesson

5
Analysis : Taking advantage of Index Overloading

Analyze the remaining pattern to see if we can use index overloading for saving costs

6
Hands-On: Implement Overloaded GSI for Customer & Transaction

Add an overloaded index

Modeling : Many-to-Many Relationship

1
Adjacency List Pattern

Learn about the adjacency list pattern

2
Analysis : Customer-Offer Relationship

Analyze ACME bank use case for applicability of adjacency pattern

3
Hands-On: Apply adjacency pattern to customer-offer relationship

Modeling : Preventing Hot Partitions

1
Hot Partitions & Sharding patterns

What are hot partitions? and patterns for addressing the issue with patterns

2
Hands-On : Address hot partition issue

Iteration#9 Apply hot partition pattern to ACME state distribution access pattern

Modeling : Efficient Scans

1
Hands-On: Experimenting with parallel scan

Sequential scans are in-efficient from cost and performance perspective. How can it be addressed?

2
Analysis : Scan Vs. GSI for for txns in date range

(Iteration#10) Address scan performance challenge with a report for ACME bank

ACID Transactions

1
What are ACID Transactions?

Learn how ACID transactions are supported by DynamoDB

2
API: TransactWriteItems

Learn how to use TransactWrite API

3
Hands-On: TransactWriteItems API

Try out the TransactWrite API

4
TransactWriteItems Idempotence

What does idempotency mean in the context of DynamoDB

5
API : TransactGetItems

Try out the TransactGetItem

Modeling : Transactions

1
Hands-On : Running counters

(Iteration#11.1) Design a counter at Account level

2
Hands-On : Credit Transactions

(Iteration#11.2) Design the credit transaction

3
Hands-On: Debit Transaction

Iteration# 11.3) Design the debit transaction

DynamoDB Streams

1
DynamoDB Streams

You will learn (a) what are DyanamoDB streams (b) How the work  under the covers

2
Shards & Stream Reader Application

You will learn about shards and how applications read stream record events from the stream

3
Hands-On: Experiment with Streams API

In this hands on exercise you will try out the stream API

4
Hands-On: Tryout API with Python

In this hands on exercise you will use Python code to read the stream events

21. Time to Live (TTL)

1
Time to Live Feature

In this lesson you will learn about TTL and how it works with streams

2
Hands-On: Tryout the TTL

You will gain hands on experience with the TTL feature

Modeling : DynamoDB Streams

1
Modeling : Setup daily report

(Iteration# 12) ACME bank has a need for a daily stats report. In this lesson you will take care of the requirement using Stream + Lambda function

2
Modeling : Archival of Transactions

ACME bank transactions are archived after 7 years. In this exercise you will model this requirement.

You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.7
4.7 out of 5
64 Ratings

Detailed Rating

Stars 5
47
Stars 4
14
Stars 3
5
Stars 2
0
Stars 1
0