Amazon DynamoDB is a (popular) nonrelational database (NoSQL) that delivers reliable performance at any scale. It's a fully managed on AWS, multi-region, multi-master database that provides consistent single-digit millisecond latency, and offers built-in security, backup and restore, and in-memory caching.
To use DynamoDB effectively, one must understand key concepts like partition/hash keys or range/sort keys to store NoSQL data, scan vs query calls to access data, projections and expressions, a mapper class for ORM, global secondary indexing to allow adhoc querying, asynchronous calls and batch read/write operations.
As a cloud offering, Dynamo DB needs resource provisioning, time to live and autoscale configuration aligned with your application's needs along with monitoring via Cloudwatch or 3rd party tools. In addition, Dynamo DB also provides in memory acceleration caching via DAX, trigger mechanism and data exports via data pipeline.
This session will cover how to effectively program for DynamoDB noSQL through judicious choice of:
- Table data's primary keys, secondary indices, schema
- In-memory caching (DAX), ORM Mapper class
- Effective and efficient ways of querying, scanning (Query expression, projections)
- Provisioning, scaling and monitoring (Cloudwatch, autoscale)
- Backups, exports, data pipeline for offline/realtime analytics
- Cost implications & comparison (Using 2018 AWS $ rates in popular AWS region)
Examples will be provided in Java, Javascript/NodeJS and will walk through the AWS DynamoDB SDK and console with examples for table creation, CRUD operations, capacity management, accelerator cache cluster config and security group settings.
Keywords: Cloud, NoSQL, Dynamo, AWS, DAX, Amazon, Web Services, Storage, Database, DynamoDB