Data_modeling_with_Amazon_DynamoDB_CMY304
Data_modeling_with_Amazon_DynamoDB_CMY304
Alex DeBrie
Engineering Manager
Serverless, Inc.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Agenda
Key concepts
DynamoDBGuide.com
DynamoDBBook.com
@alexbdebrie
alexdebrie.com
Related breakouts
NoSQL database
• Table
• Item
• Primary key
• Attributes
Table
Item
Primary key
Attributes
Primary key
• Item-based actions
Item-based actions—writing, updating, deleting
Item-based actions—writing, updating, deleting
Must
provide
entire
primary
key
API actions
• Item-based actions
• Query
Query
Query
Must
provide
partition
key
May
provide
sort key
conditions
API actions
• Item-based actions
• Query
• Scan
Scan
Scan
Avoid!
Expensive
at scale
Secondary indexes
Secondary indexes
Secondary indexes
Secondary indexes
Secondary indexes
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Basics
• Normalization
• JOINs
• E-commerce store
user_address order_items
quantity int
2. Define your access patterns
Identify access patterns
PK SK
User Address
Order
Order Item
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
users orders
1 *
username string username string
1
1
full_name string order_id string
user_address order_items
quantity int
users orders
1 *
username string username string
1
1
full_name string order_id string
user_address order_items
quantity int
Denormalization + document types
Entities
PK SK
Order
Order Item
users orders
1 *
username string username string
1
1
full_name string order_id string
user_address order_items
quantity int
users orders
1 *
username string username string
1
1
full_name string order_id string
user_address order_items
quantity int
One-to-many: Sort keys
Entities
PK SK
Order Item
Entities
PK SK
Order Item
Query:
user_address order_items
quantity int
users orders
1 *
username string username string
1
1
full_name string order_id string
user_address order_items
quantity int
Entities
PK SK
Must
provide
partition
key
May
provide
sort key
conditions
Filter expressions
Filter expressions
Filter expressions
Filter expressions
Filter expressions
Filter expressions
Filter expressions
Filtering access patterns
1. Primary key
3. Sparse index
Thank you!
Alex DeBrie
@alexbdebrie
dynamodbbook.com
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.