DynamoDB Applied Design Patterns
By Uchit Vyas and Prabhakaran Kuppusamy
3/5
()
About this ebook
DynamoDB provides fast and predictable performance with seamless scalability. If you are a developer, you can use DynamoDB to create a database table that can store and retrieve any amount of data, and serve any level of request traffic. As a database administrator, you can create and scale up or down your request capacity for your DynamoDB table without downtime or performance degradation.
Designed as a complete solutions guide for AWS DynamoDB, this book is a fully managed proprietary NoSQL database service pattern. The book begins with a description of the concepts of data modeling including tables, items, attributes, primary keys, indexes, and design patterns. You will learn how to access DynamoDB in the management console, command line, and the Eclipse plugin. You will also gain insights into DynamoDB Local and CLI commands. By the end of the book, you will have all that it takes to efficiently use DynamoDB to its utmost capabilities.
Related to DynamoDB Applied Design Patterns
Related ebooks
Mastering DynamoDB Rating: 0 out of 5 stars0 ratingsInfrastructure as Code, Patterns and Practices: With examples in Python and Terraform Rating: 0 out of 5 stars0 ratingsImplementing DevOps on AWS Rating: 0 out of 5 stars0 ratingsLearning Docker - Second Edition Rating: 0 out of 5 stars0 ratingsMongoDB High Availability Rating: 5 out of 5 stars5/5Building Scalable Apps with Redis and Node.js Rating: 0 out of 5 stars0 ratingsImplementing OpenShift Rating: 0 out of 5 stars0 ratingsDynamoDB Cookbook Rating: 0 out of 5 stars0 ratingsAmazon S3 Cookbook Rating: 0 out of 5 stars0 ratingsInfrastructure as Code (IAC) Cookbook Rating: 0 out of 5 stars0 ratingsAmazon Web Services in Action Rating: 0 out of 5 stars0 ratingsInstant MongoDB Rating: 0 out of 5 stars0 ratingsHands-On Microservices with Kubernetes: Build, deploy, and manage scalable microservices on Kubernetes Rating: 5 out of 5 stars5/5Spark in Action: Covers Apache Spark 3 with Examples in Java, Python, and Scala Rating: 0 out of 5 stars0 ratingsAmazon EC2 Cookbook Rating: 0 out of 5 stars0 ratingsServerless Architectures on AWS, Second Edition Rating: 5 out of 5 stars5/5Implementing Cloud Design Patterns for AWS Rating: 0 out of 5 stars0 ratingsServerless Applications with Node.js: Using AWS Lambda and Claudia.js Rating: 0 out of 5 stars0 ratingsLearning Azure DocumentDB Rating: 0 out of 5 stars0 ratingsAWS Administration – The Definitive Guide Rating: 5 out of 5 stars5/5Learning Elasticsearch 7.x: Index, Analyze, Search and Aggregate Your Data Using Elasticsearch (English Edition) Rating: 0 out of 5 stars0 ratingsElasticSearch Cookbook Rating: 5 out of 5 stars5/5Kafka in Action Rating: 0 out of 5 stars0 ratingsDomain Driven Design A Complete Guide - 2020 Edition Rating: 0 out of 5 stars0 ratings
Computers For You
Mastering ChatGPT: 21 Prompts Templates for Effortless Writing Rating: 4 out of 5 stars4/5Storytelling with Data: Let's Practice! Rating: 4 out of 5 stars4/5Creating Online Courses with ChatGPT | A Step-by-Step Guide with Prompt Templates Rating: 4 out of 5 stars4/5Data Analytics for Beginners: Introduction to Data Analytics Rating: 4 out of 5 stars4/5Algorithms to Live By: The Computer Science of Human Decisions Rating: 4 out of 5 stars4/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5The Alignment Problem: How Can Machines Learn Human Values? Rating: 4 out of 5 stars4/5Narrative Design for Indies: Getting Started Rating: 4 out of 5 stars4/5Get Into UX: A foolproof guide to getting your first user experience job Rating: 4 out of 5 stars4/5The Unaccountability Machine: Why Big Systems Make Terrible Decisions - and How The World Lost its Mind Rating: 0 out of 5 stars0 ratingsPython for Finance Cookbook: Over 50 recipes for applying modern Python libraries to financial data analysis Rating: 0 out of 5 stars0 ratingsBlack Holes: The Key to Understanding the Universe Rating: 5 out of 5 stars5/5SQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5How Do I Do That In InDesign? Rating: 5 out of 5 stars5/5Python for Beginners: A Crash Course to Learn Python Programming in 1 Week Rating: 0 out of 5 stars0 ratingsAdvances in Financial Machine Learning Rating: 5 out of 5 stars5/5Learn Algorithmic Trading: Build and deploy algorithmic trading systems and strategies using Python and advanced data analysis Rating: 0 out of 5 stars0 ratingsDjango Building Dynamic Website With Django : A Complete Step By Step Guide To Learn to Build Modern Web Application with a Python Rating: 0 out of 5 stars0 ratingsArtificial Intelligence: The Complete Beginner’s Guide to the Future of A.I. Rating: 4 out of 5 stars4/5Blender 3D Basics Beginner's Guide Second Edition Rating: 5 out of 5 stars5/5Learn SAP MM in 24 Hours Rating: 0 out of 5 stars0 ratingsDeep Learning with PyTorch Rating: 5 out of 5 stars5/5ITIL® 4 Essentials: Your essential guide for the ITIL 4 Foundation exam and beyond, second edition Rating: 5 out of 5 stars5/5The ChatGPT Millionaire Handbook: Make Money Online With the Power of AI Technology Rating: 4 out of 5 stars4/5
Reviews for DynamoDB Applied Design Patterns
1 rating0 reviews
Book preview
DynamoDB Applied Design Patterns - Uchit Vyas
Table of Contents
DynamoDB Applied Design Patterns
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Errata
Piracy
Questions
1. Data Modeling with DynamoDB
Data model
Efficient use of primary keys
Basics of indexes
Default or primary indexes
Secondary indexes
DynamoDB data types
Summary
2. DynamoDB Interfaces
The management console
Managing the DynamoDB table
Managing DynamoDB table items
The Eclipse plugin
The command-line interface
Summary
3. Tools and Libraries of AWS DynamoDB
Creating your first SDK project
Java SDK operations
DynamoDB Local
Summary
4. Working with Secondary Indexes
Secondary indexes
Projection
Local secondary index
Global secondary index
Item sharding
Ideal item writing
Best practices with secondary indexes
Distributing the load by choosing the correct key
Making use of the sparse index
Using the global secondary index for quicker retrieval
Creating a read replica
Using indexes sparingly
Choosing projections carefully
Optimizing frequent queries to avoid fetches
Watching for expanding item collections
Summary
5. Query and Scan Operations in DynamoDB
Querying tables
Consistency
Exclusive start key
Scanning tables
Parallel scanning
Summary
6. Working with the DynamoDB API
Data format
HTTP requests
Request header
Request body
Response header
Error handling
Client-side error with status code 400 - retry not needed
AccessDeniedException
ConditionalCheckFailedException
IncompleteSignatureException
LimitExceededException
MissingAuthenticationTokenException
ResourceInUseException
ResourceNotFoundException
ValidationException
Client-side error with status code 400 - retry possible
ProvisionedThroughputExceededException
ItemCollectionSizeLimitExceededException
ThrottlingException
UnrecognizedClientException
Client-side error with status code 413
Server-side error with status code 500
InternalFailure and InternalServerError
ServiceUnavailableException
Error retry and exponential back off
Operations in DynamoDB
CreateTable
PutItem
UpdateItem
GetItem
Query
Scan
DeleteItem
DescribeTable
UpdateTable
DeleteTable
ListTables
BatchGetItem
BatchWriteItem
Summary
7. Distributed Locking with DynamoDB
Distributed locking
Solutions available to solve distributed writes
Java high-level API
Optimistic locking
Importance of distributed locking
Summary
8. DynamoDB with Redshift, Data Pipeline, and MapReduce
Loading data from DynamoDB into Redshift
Importing and exporting data between DynamoDB and S3
Creating Data Pipeline
Exporting, importing, querying, and joining tables using AWS MapReduce
Exporting data from DynamoDB to S3
Exporting the DynamoDB table to HDFS
Importing data to DynamoDB
Querying data in DynamoDB
Joining two DynamoDB tables
Summary
9. DynamoDB – Best Practices
DynamoDB use cases
Schema-less-ISH
Batch applications
Stating attributes using the :select option
Synchronization
Real-time problem statements and their solutions
Problem statement – 1
Solution
Problem statement – 2
Solution
Problem statement – 3
Solution
Problem Statement – 4
Solution
Problem statement – 5
Solution
AWS DynamoDB on mobile
Storing data in the table
Android
iOS
Updating a record
Android
iOS
Deleting a record
Android
iOS
Uniform workload
Time series tables
When to use and when not to use DynamoDB
Summary
A. Comparing DynamoDB
DynamoDB versus MongoDB
DynamoDB versus Cassandra
DynamoDB versus S3
DynamoDB versus Redis
Index
DynamoDB Applied Design Patterns
DynamoDB Applied Design Patterns
Copyright © 2014 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: September 2014
Production reference: 1160914
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78355-189-7
www.packtpub.com
Credits
Authors
Uchit Vyas
Prabhakaran Kuppusamy
Reviewers
Hrijul Parekh
Akshay Surve
Riddhi Thaker
Commissioning Editor
Pramila Balan
Acquisition Editor
Nikhil Karkal
Content Development Editor
Adrian Raposo
Technical Editor
Veronica Fernandes
Copy Editors
Roshni Banerjee
Sarang Chari
Project Coordinator
Sanchita Mandal
Proofreaders
Sam Birch
Paul Hindle
Indexer
Rekha Nair
Graphics
Disha Haria
Abhinash Sahu
Production Coordinator
Arvindkumar Gupta
Cover Work
Arvindkumar Gupta
About the Authors
Uchit Vyas is an open source specialist and a hands-on Lead DevOps of Clogeny Technologies. He is responsible for the delivery of solutions, services, and product development. He explores new open source technologies and defines architecture, roadmaps, and best practices for enterprises. He has consulted and provided training on various open source technologies, including Cloud computing (AWS Cloud, Rackspace, Azure, CloudStack, OpenStack, and Eucalyptus), Mule ESB, Chef, Puppet, Liferay Portal, Alfresco ECM, and JBoss to corporations around the world.
He has an engineering degree in Computer Science from Gujarat University. He was in the Education & Research Team as a senior associate at Infosys Limited, during which time he worked on SaaS, Private Clouds, Cloud Security, and Virtualization. He is now working on Cloud Automation.
He has also published a book on Mule ESB and is writing various books with Packt Publishing on open source technologies and AWS (Mastering AWS Development Guide, Packt Publishing).
He hosts a blog named Cloud Magic World (cloudbyuchit.blogspot.com), where he posts tips and phenomena about open source technologies, mostly relating to Cloud. He can also be found on twitter as @uchit_vyas.
I would like to thank my better half for helping me a lot in writing this book and providing me with continuous support all the time throughout the book-writing period. I would also like to thank my Infocian colleague, Prabhakaran Kuppusamy, for his great help.
Prabhakaran Kuppusamy is a Hadoop ecosystem specialist and Cloud enthusiast who is currently working as Senior Systems Engineer and developer, Cloud & Infrastructure Services unit, at Infosys Limited. He has been with Infosys for nearly 4 years now. He has a Bachelor of Engineering degree in Instrumentation and Control Engineering from Anna University. He joined Education & Research at Global Education Centre, Infosys, where he trained and evaluated thousands of freshers in Java, Big Data, and Cloud technologies. During his tenure in Education & Research, he provided training to students from Coventry University and to professionals from Costa Rica on Big Data and Cloud technologies, such as Hadoop, MapReduce, Hive, Elastic MapReduce, Google App Engine, DynamoDB, and CloudStack. It was during one of those training sessions that he met Uchit Vyas, and the idea of this book was born. After spending 2 years at the Global Education Centre, he moved to Cloud project management, where he started working on MarkLogic, Storm, and XQuery for a project on the banking domain. He can be found on Twitter at @prabhakar28dec.
Prabhakaran is currently working on the book AWS Development Essentials, Packt Publishing.
I would like to thank my mentors Sureesh Joseph, Bharathykannan Udhayasuriyan, Uchit Vyas, Bhupendra Bajpayi, and Ravindran Balachandran. Thanks for shepherding me personally and technically, by spending your time and goodwill in helping me spend valuable time on my maiden book and to bring the book out in good shape. Special thanks to Kshitiz Jain, my manager and friend, who has always been there to help me choose what suits me the best and helped me scale up in DynamoDB.
About the Reviewers
Hrijul Parekh has a B.Eng. degree in Information Technology with a research interest in Cloud and infrastructure automation. He is always enthusiastic to work on multiple platforms at a time and has the ability to integrate open source technologies. He is a Cloud Engineer at PMC Retail Pvt. Ltd.
With over 3 years of hands-on experience in open source technologies, he manages to guide the team and deliver projects and training sessions, meeting client expectations all along. He's responsible for designing and managing a Cloud environment/infrastructure and server architecture in his organization. He is also active in Shell scripting, autodeployment, supporting hundreds of Linux and Windows physical and virtual servers hosting databases, and applications with continuous delivery using Jenkins/Hudson with Chef scripting.
I would like to thank my family for supporting me to achieve my dreams.
Akshay Surve is in the pursuit of making meaning through his initiatives, be it for profit or for the good of society. At heart, he is a midnight code junkie and occasionally dabbles with prose.
He is also the cofounder and CTO at DeltaX, where he drives the technology and product roadmap. His expertise in Cloud computing and building web-scale distributed systems, coupled with a deep understanding of the ad-tech ecosystem over the last 8 years, has been one of the key drivers of the rapid pace of development of DeltaX's product line.
You can connect with him on Twitter. His Twitter handle is @AkshaySurve.
Riddhi Thaker has more than 4 years of software engineering experience in software design, analysis, development, testing, and implementation of web and client-server large-scale applications, as well as customized desktop applications based on Microsoft technologies and AWS infrastructure. She has extensive experience in design and development of applications using .NET and web technologies, such as XML, CSS, CSS3, Ajax, JavaScript, jQuery, UI designing, HTML, and HTML5 in n-tier architecture across platforms and even Cloud platforms.
She has a Bachelor's degree in Engineering in Information Technology from Gujarat University. She was in the Developer team as senior developer at BarodaWeb, during which time she worked on SaaS, private clouds, Azure, and virtualization. She is now working on Cloud deployment and various other Cloud platforms.
I would like to thank my better half for helping me a lot in reviewing this book and providing me with continuous support throughout the book reviewing period.
www.PacktPub.com
Support files, eBooks, discount offers, and more
You might want to visit www.PacktPub.com for support files and downloads related to your book.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
http://PacktLib.PacktPub.com
Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can access, read and search across Packt's entire library of books.
Why subscribe?
Fully searchable across every book published by Packt
Copy and paste, print and bookmark content
On demand and accessible via web browser
Free access for Packt account holders
If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view nine entirely free books. Simply use your login credentials for immediate access.
Preface
This book, DynamoDB Applied Design Patterns, will be a single place to find solutions for all hiccups with Amazon DynamoDB. This book will explain how to create, design, and manage databases in DynamoDB using the AWS SDKs and APIs, as well as the AWS management console, a browser-based graphical user interface to interact with the service. It will include a significant number of examples that can be used by anyone, from a newbie to an expert. Using this book, users can perform advanced-level programming and gain the advantages of AWS DynamoDB NoSQL databases in their application at significantly lower costs.
What this book covers
Chapter 1, Data Modeling with DynamoDB, will teach users about data model concepts, including tables, items and attributes, primary key, and indexes and their design patterns.
Chapter 2, DynamoDB Interfaces, will help users gain knowledge of how to access DynamoDB in the management console. We will also take a look at the command-line interface and the Eclipse plugin.
Chapter 3, Tools and Libraries of AWS DynamoDB, will teach users what DynamoDB Local is, what the CLI commands are, and how we can use CLI from a developer/DBA perspective.
Chapter 4, Working with Secondary Indexes, will teach users what global and local secondary indexes are and what the importance of secondary indexes in DynamoDB is. Users will learn managed auto-sharding NoSQL databases that automatically reshard based on SLA.
Chapter 5, Query and Scan Operations in DynamoDB, will teach users about parallel scanning operations for DynamoDB. Users will learn how to use query and scan operations on DynamoDB tables and how to get results from query and scan operations.
Chapter 6, Working with the DynamoDB API, will take users through the Amazon DynamoDB API and its format. Users will learn how to call an API from applications to DynamoDB and how to retrieve data in an appropriate format that can be used with applications.
Chapter 7, Distributed Locking with DynamoDB, will provide readers with the information to support DynamoDB as an excellent choice for a distributed locking service, while briefly exploring the what, why, and how of locking.
Chapter 8, DynamoDB with Redshift, Data Pipeline, and MapReduce, will help readers work closely with DynamoDB from Redshift, S3, and MapReduce, and we will learn how to collaborate these AWS services with DynamoDB efficiently.
Chapter 9, DynamoDB – Best Practices, will help readers to deep dive into the best design use case architectures for DynamoDB. They will also learn real-time problem statements and their best solutions.
Appendix, Comparing DynamoDB, will teach users how Amazon DynamoDB is