TechWriterDev
  • Cloud
    • AWS
      • 00_Doubts
      • CloudPractitioner
        • Cloud Computing
        • AWS Global Infrastructure
        • Introduction to AWS EC2
        • Elastic load balancer(ELB)
        • 04_Messaging_Queuing
        • Aditional Computing Service
        • Accessing AWS resources
        • AWS Networking
        • Storage
        • Amazon Database Solutions
        • Monitoring Tools
        • AWS Security
        • Distributed Denial Of Service Attacks
      • DeveloperAssociate
        • References
        • AWS DVA-C02 Services Index
        • Services
          • 00_IAM
            • Identity and Access Management (IAM)
            • Account Protection Mechanisms
            • Access Mechanism of AWS Resources
            • Security Tools
            • Responsibility Model
            • Advanced Concepts
          • 01_EC2
            • Elastic Compute Cloud (EC2)
            • EC2 Volume Types
            • Amazon Machine Image (AMI)
            • AWS charges for IPv4 address
          • 02_SecurityGroups
            • Security Groups
          • 03_Elastic_LoadBalancing
            • Terminology
            • Elastic load balancer
            • Features
            • Basics
          • 04_AutoScaling
            • Auto Scaling
          • 05_RDS
            • Relational Database Service (RDS)
            • Aurora
            • Security
            • RDS Proxy
          • 06_ElastiCache
            • Cache
            • Cache Offerings
          • 07_Route53
            • Basics of DNS
            • Route 53
          • 08_VPC
            • Virtual Private Cloud (VPC)
          • 09_S3
            • Simple Storage Service (S3)
            • S3 Features
            • S3 Encryption
            • S3 Features
            • S3 Bucket Policy and IAM Policy
          • 10_ECS
            • Elastic Container Service (ECS)
            • Elastic Container Registry (ECR)
            • AWS Copilot
          • 11_EKS
            • Elastic Kubernetes Service (EKS)
          • 12_SDK_CLI_Tips
            • Access AWS Resources
          • 13_CloudFront
            • Cloud Front
          • 14_Messaging
            • Simple Queue Service (SQS)
            • Simple Notification Service (SNS)
            • Fan Out Pattern
            • Kinesis
            • Compare and Contrast
          • 15_ElasticBeanStalk
            • Elastic Beanstalk
          • 16_CloudFormation
            • CloudFormation
            • Dynamic References
          • 17_Monitoring
            • AWS Monitoring
            • AWS CloudWatch
            • CloudWatch Alarms
            • Synthetics Canary
            • Amazon EventBridge (formerly CloudWatch Events)
            • X-Ray
            • OpenTelemetry
            • CloudTrail
          • 18_Lambda
            • Lambda
            • Lambda Integrations
            • Configuring Lambda
            • Lambda Layers
          • 19_API_Gateway
            • API Gateway
            • API Gateway Integrations
          • 20_DynamoDB
            • DynamoDB
            • Operations
            • Indexes
            • DynamoDB Accelerator (DAX)
            • DynamoDB Streams
            • Transactions
            • Integrations
          • 21_CICD
            • CICD
            • CodeCommit
            • CodePipeline
            • CodeBuild
            • CodeDeploy
            • CodeArtifact
            • CloudGuru
          • 22_SAM
            • Serverless Application Model (SAM)
          • 23_CDK
            • Cloud Development Kit (CDK)
          • 24_StepFunctions
            • Step Functions
            • Types of step function
          • 25_AppSync
            • AppSync
          • 26_Amplify
            • Amplify
          • 27_STS
            • Security Token Service (STS)
          • 28_DirectoryService
            • Active Directory
          • 29_KMS
            • Encryption
            • KMS API
            • Features
            • Cloud Hardware Security Module (HSM)
          • 30_SSM_Store
            • SSM Parameter Store
          • 31_SecretsManager
            • Secrets Manager
          • 32_Cognito
            • Cognito
      • Questions
        • AWS_Region
        • EC2
        • IAM
  • Database
    • MongoDb
      • Mongo db Basics
      • Mongo DB Atlas
      • Document
      • Import-Export based on Data Format
      • Mongo Shell Commands
      • Query Operators
      • Indexes
      • Upsert
      • MongoDB Aggregation Framework
      • Aggregation Framework Operators
    • PostgreSQL
      • POSTGRE SQL DataTypes
      • About table
      • Constraints
  • Technologies
    • RabbitMQ
      • RabbitMQ Concepts
      • Introduction to Exchanges
      • Introduction to Queues
    • Terraform
      • 00_Introduction
      • Configuration blocks
      • Commands
      • Variables
      • Terraform Cloud
      • Modules
  • Languages
    • Java
      • Logging
        • Getting Started
      • 00_Core
        • 00_Basics
          • Java Vs C++
          • Object oriented principles
          • Steps to compile a java program
          • JVM Internals
          • Understanding Java Development Kit
          • What is JIT Compiler?
          • Java data types
          • 07_identifiers_type_conversion
          • 08_references_and_packages
          • Steps for attaching scanner
        • Concurrency
          • 00_Threads
            • Threads
          • 01_ExecutorFramework
            • Executor Framework
            • Asynchronous Computation
      • 01_Backend
        • 01_HttpAndWebServerBasics
          • HTTP
          • Content Type
          • Web Server
        • 02_J2EE_Basics
          • J2EE_Basics
          • Why HttpServlet classs is declared as abstract class BUT with 100 % concrete functionality ?
        • 03_TomCatAndSession
          • What is a Session?
          • WebContainer
        • 04_PageNavigation
          • Cookies Additional Information
          • Page Navigation Techniques
        • 05_AboutServlet
          • CGI v/s Servlet
          • Executor Framework
          • Servlet Life cycle
          • SERVLET CONFIG
          • Servlet Context
          • Servlet Listener (web application listener)
        • 08_SpringBoot
          • Spring Boot
          • Some common annotations used in spring eco system
        • 09_SpringDataJPA
          • Spring Data JPA
        • Java_Language_Changes
          • JDK enhancement tracking reference
        • 06_ORM_Hibernate
          • readmes
            • Hibernate
            • Advantages of Hibernate
            • Hibernate Caching
            • Hibernate API
            • Hibernate Query API
            • Hibernate Annotations and JPQL
            • Entity and Value Type
        • 07_SpringFramework
          • bean_validation
            • Bean Validation
          • core
            • readme
              • Spring
              • Spring Framework Modules
              • Spring MVC Request flow
              • Dependency Injection
              • Spring Beans
              • 06_Spring_Framework_Annotations
      • 03_Tools
        • Maven
          • Maven
  • SoftwareEngineering
    • DesignPatterns
      • Notes
        • Basics
        • OOP
        • SOLID Principles
        • 03_Creational
          • Abstract Factory (aka Kit)
          • Builder
          • Factory Method (aka Virtual constructor)
          • Prototype
          • Singleton
        • 04_Structural
          • Adapter (aka Wrapper)
          • Bridge (aka Handle | Body)
          • Composite
          • Decorator (aka Wrapper)
          • Facade
          • Flyweight
          • Proxy (aka Surrogate)
        • 05_Behavioral
          • Chain of Responsibility
          • Command (aka Action | Transaction)
          • Iterator (aka Cursor)
          • Observer (aka Publish-Subscribe | Dependents)
          • Strategy (aka Policy)
    • Principles
      • REST
        • REST
  • Tools
    • Containers
      • Docker
        • Docker
        • Docker Image
        • Commands
        • Compose
        • Best Practices
      • Kubernetes
        • Kubernetes
    • VCS
      • Git
        • Quick reference of useful Git commands
Powered by GitBook
On this page
  • Writing Data
  • Conditional Writes
  • Reading Data
  • Delete Data
  • Batch Operations
  • PartiQL
  • Some more Operations
  1. Cloud
  2. AWS
  3. DeveloperAssociate
  4. Services
  5. 20_DynamoDB

Operations

PreviousDynamoDBNextIndexes

Last updated 4 months ago

Writing Data

Operation Name
Description

PutItem

Create a new item or fully replace an old item (using Primary Key). It Consumes WCU

UpdateItem

Edits an existing item's attribute or add items if it does not exists. Can be used to implement Atomic Counters - A numeric attribute that's unconditionally incremented.

Conditional Writes

Accept a write/update/delete only if condition are met, otherwise return an error. Helps with concurrent access to items.

Conditional Writes

  • For PutItem, UpdateItem, DeleteItem and BatchWriteItem one can specify a condition expression to determine which items should be modified.

  • Condition expressions like

    • attribute_exists

    • attribute_not_exists

    • attribute_type

    • contains(string)

    • begins_with(string)

    • IN (:cat1, :cat2)

    • size(length)

  • FilterExpression filters the result of read queries, while Condition Expressions for write operations.

  • An example query would look as follows,

        aws dynamodb update-item \
            --table-name ProductCatalog \
            --key '{"Id":{"N":"1"}}' \
            --update-expression "SET Price = :newval" \
            --expression-attribute-values file://expression-attribute-values.json
  • More about them can be read

Reading Data

Operation Name
Description

GetItem

Reads based on primary key. Primary key can be HASH or HASH + RANGE. Eventually Consistent Read. Option to use Strongly Consistent Reads (more RCU, hence might take longer). ProjectedExpression can be specified to retrieve only certain attributes.

Query

Return items based on KeyConditionExpression, partition key value must be required. Sort key is optional. FilterExpression is used for additional filtering after Query operation. Used only with non-key attributes. (It does not allow HASH or RANGE attributes). It returns a list of items in Limit, or upto 1MB. Pagination on result can be done to get more result. Can query table, a local secondary index or a Global econdary Index.

Scan

Scan an entire table and then filter out data, it is inefficient though. Returns upto 1 MB of data, use pagination to keep on reading. Consumes a lot of RCU. Also has option to do Parallel Scan, in which multiple workers will scan multiple data segment at same time and increases throughput and RCU consumed. Ensure to use limit to reduce the impact of parallel scans. Can use ProjectionExpression and FilterExpression.

Delete Data

Operation Name
Description

DeleteItem

Delete an individual Item or conditional delete.

DeleteTable

Delete an whole table and all its items.

Batch Operations

  • Allow to save in latency by reducing the number of API calls.

  • Operations are done in parallel for better efficiency.

  • Part of batch can fail, in which case would need to try again for failed items.

Operation Name
Description

BatchWriteItem

Supports upto 25 PutItem and/or DeleteItem in one call. Upto 16 MB of data written, upto 400 KB of data per item. Can't update items (use UpdateItem). UnprocessedItems for failed write operations are returned on failure, and to correct the failure use exponential back-off or add WCU.

BatchGetItem

Returns items from one or more tables. Upto 100 items and 16 MB of data. Items are retrieved in parallel to minimize latency. UnprocessedKeys for failed read operations are returned on failure, and to correct the failure use exponential back-off or add RCU.

PartiQL

  • SQL compatible query language for DynamoDB.

  • Allows you to select, insert, update and delete data in DynamoDB.

  • No joins are allowed.

  • Queries can be run from,

    • AWS Management Console

    • NoSQLWorkbench for DynamoDB

    • SDK

    • AWS-CLI

    • DynamoDB APIs

Some more Operations

  1. Table Cleanup

    • Scan and DeleteItem

      • Very slow, consumes RCU and WCU.

    • Drop Table

      • Fast, cheap and efficient

  2. Copying a Table

    • AWS Data Pipeline.

      • This will spin up an EMR cluster.

      • EMR cluster will read data from DynamoDB table and write that data to S3.

      • Once above step is done, it will read back the data from S3 and write it to new DynamoDB table.

    • Backup and restore

      • Takes some time.

    • Scan and PutItem/BatchWriteItem

      • Write your own code and allows to do some transformation on data if needed.

here