- Overview
- Prerequisites
- Audience
- Curriculum
Description:
This course provides a comprehensive introduction to Amazon DynamoDB, covering how to design, create, and interact with DynamoDB databases using JavaScript. Topics include data modeling, querying, and best practices in performance optimization for DynamoDB. Participants will gain hands-on experience with DynamoDB’s key features using the AWS SDK for JavaScript.
Duration: 3 Days
Course Code: BDT384
Learning Objectives:
After completing this course, participants will be able to:
- Understand the fundamentals of DynamoDB and its NoSQL architecture
- Design and implement data models in DynamoDB
- Use the AWS SDK for JavaScript to interact with DynamoDB
- Perform CRUD operations, querying, and scanning in DynamoDB
- Optimize DynamoDB performance for cost-effective applications
- Implement DynamoDB streams, triggers, and backup strategies
- Basic knowledge of JavaScript
- Familiarity with cloud concepts and basic AWS services
- Web developers, software engineers, and data engineers looking to integrate Amazon DynamoDB with JavaScript applications for fast, scalable, and serverless data storage solutions.
Course Outline:
Module 1: Introduction to AWS DynamoDB
- Topics Covered:
- Overview of DynamoDB: Key Features and Use Cases
- DynamoDB vs. Relational Databases (SQL)
- Core Concepts: Tables, Items, Attributes
- Primary Keys: Partition Keys and Sort Keys
- DynamoDB Data Types
- Provisioned vs. On-Demand Capacity Modes
- Hands-On Labs:
- Setting up an AWS DynamoDB environment
- Creating a DynamoDB table using the AWS Management Console
Module 2: Getting Started with AWS SDK for JavaScript
- Topics Covered:
- Setting Up the AWS SDK for JavaScript
- Configuring AWS Credentials
- Introduction to DynamoDB SDK Methods
- Working with DocumentClient vs. DynamoDB Client
- Hands-On Labs:
- Initializing AWS SDK and setting up JavaScript project
- Using DocumentClient to interact with DynamoDB tables
Module 3: CRUD Operations in DynamoDB with JavaScript
- Topics Covered:
- Creating Items with put Operation
- Reading Items with get Operation
- Updating Items with update Operation
- Deleting Items with delete Operation
- Batch Operations: BatchGetItem and BatchWriteItem
- Hands-On Labs:
- Adding and reading data in DynamoDB with JavaScript
- Performing batch operations for efficient data processing
Module 4: Querying and Scanning Data
- Topics Covered:
- Queries vs. Scans in DynamoDB
- Querying by Partition Key and Sort Key
- Using Filters, Expressions, and Conditions in Queries
- Pagination and Handling Large Datasets
- Best Practices for Query and Scan Performance
- Hands-On Labs:
- Querying data with filters and expressions
- Implementing pagination for large dataset handling
Module 5: Data Modeling in DynamoDB
- Topics Covered:
- Designing for NoSQL and DynamoDB: Data Modeling Basics
- Single Table Design vs. Multiple Table Design
- Secondary Indexes: Global and Local Secondary Indexes
- Normalization vs. Denormalization
- Optimizing Data Models for Read and Write Efficiency
- Hands-On Labs:
- Creating Global and Local Secondary Indexes
- Implementing single-table design with multiple entities
Module 6: DynamoDB Performance Optimization
- Topics Covered:
- Understanding DynamoDB Capacity Units (Read/Write)
- Strategies for Reducing Read and Write Costs
- Fine-Tuning with Provisioned Capacity and Auto-Scaling
- Implementing Caching with DynamoDB Accelerator (DAX)
- Hands-On Labs:
- Configuring auto-scaling for DynamoDB tables
- Setting up and using DynamoDB Accelerator (DAX) for caching
Module 7: DynamoDB Streams and Triggers
- Topics Covered:
- Introduction to DynamoDB Streams and Event-Driven Architecture
- Setting up Lambda Triggers with DynamoDB Streams
- Real-time Data Processing with DynamoDB Streams and Lambda
- Event Sourcing and Change Data Capture (CDC)
- Hands-On Labs:
- Configuring a Lambda function trigger for DynamoDB Streams
- Processing real-time changes with a DynamoDB stream
Module 8: Backup, Restore, and Security
- Topics Covered:
- DynamoDB Backup and Restore Options
- Point-in-Time Recovery (PITR)
- Access Control with IAM Roles and Policies
- Encryption at Rest and in Transit
- Hands-On Labs:
- Setting up automatic backups for DynamoDB tables
- Configuring IAM roles and policies for table access control
Structured Labs and Project
- Structured Labs:
- Lab: Creating a DynamoDB table with primary and secondary indexes
- Lab: Performing CRUD operations using AWS SDK for JavaScript
- Lab: Designing a single-table architecture with multiple entities
- Lab: Setting up DynamoDB Streams with Lambda triggers
- Lab: Configuring DAX for performance optimization
- Lab: Implementing backup and recovery solutions
- Final Project:
Project: Build a JavaScript application that interacts with a DynamoDB database, implementing features such as data storage, querying, and real-time updates using streams and Lambda.
Training material provided: Yes (Digital format)
Additional Information
Any additional information about Labs / Software Installs required for the course