Amazon DynamoDB
Duration: 35-40 hrs
Prerequisites
- Reasonable Java experience or AWS Lambda Node.js experience
Course Content:
1: Introduction to the DynamoDB Database
Overview:
- The motivation for non-relational data stores
- Why relational databases don’t support modern applications well
- the DynamoDB Database at a high-level
- Use cases
- Features Strengths (Scalability, robustness, linear performance with scale-out), etc.
- High Level Structure
Acquiring and Installing the DynamoDB Database
- Local Install
- Configuration Structure
- Accessing from AWS Lambda
2: Overview of Architecture and Data Model
Basic DynamoDB Database Architecture:
- Cluster Structure - Nodes
- Consistent Hashing, Tokens, Partitioners
- Data Replication
- Consistency, the CAP theorem, Eventual Consistency
The DynamoDB Data Model:
- Data Model and DynamoDB API Introduction
- Using DynamoDB to perform queries
- Single primary key tables and how to define them using CQL
- Inserting Data (INSERT), Upsert/UpdateItem
- Querying for Data (SELECT)
- DynamoDB Data Types
- Working with Primary Keys
3: The DynamoDB Data Model
Compound Primary Keys
- Table definition
- The partition key and sort columns
- Batches
- Filtering results
- Local secondary indexes
- Global secondary indexes
- Motivation and uses
- Definition
- Partition Key Indexes
- Non-primary Key (Secondary) Indexes
- Motivation and Uses
- Structure, Characteristics, Usage
- Motivation and Uses
- Structure, Characteristics, Usage
- Document type definition (list, and map)
- Inserting, Updating, Deleting with Document types
Session 4: Data Consistency
- Data Consistency in DynamoDB
- What happens under the covers
Session 5: How Things Work
- Write Failures
- Key and Row Caches
- Multi-Data Center Support
- Streaming DynamoDB Activity
Session 6: Programming DynamoDB (Labs are either Java or AWS Lambda/Node.js)
- API Introduction
- Upserts
- Deletes
- Working with items
- Batch operations
- Querying
- Scanning
- Asynchronous Querying
- Working with streams
- Working with Scans
- Object Mapping
- Pagination
Session 7: Best Practices
- Understanding Partitions
- Avoiding hotspots
- When to use caching
- Using uniform access
Session 8: Production Support
- Using CloudWatch to monitor DynamoDB
- Using streams to replicate data in another region
- Log aggregation with CloudTrail and CloudWatch
- Exporting data to S3 with AWS Data Pipeline
- Importing data to DynamoDB from S3 using AWS Data Pipeline
- Encryption and Masking
- Introduction to IAM (roles, resources)
- IAM and DynamoDB
Session 9: Integrating DynamoDB with Elastic Map Reduce and RedShift
- Introduction to EMR/Hadoop
- Exporting data into Hadoop/EMR
- Introduction to Hive
- Query data from Hive/EMR
- Introduction to RedShift
- Uploading DynamoDB Data into AWS RedShift
- Perform queries in RedShift against DynamoDB tables loaded