SlideShare a Scribd company logo
1 of 68
Andrey Zaychikov, Specialist SA – DB Migrations, EMEA
Deep Dive to Amazon
DynamoDB
Agenda
• Why NoSQL?
• What is DynamoDB?
• Programming with DynamoDB
• Tables, Items, Indexes, Queries
• Provisioning, Performance & Scaling
• Shema modelling techniques
• In-Memory Acceleration with DAX
• Streams, Triggers & TTL
• Security & Control
• Recap of Cost Optimization
What was the reason for NoSQL rise?
Complexity of
data schemes
Data volume Uptime
NoSQL ecosystem
Cassandra example
Database per workload approach
Database per workload using AWS services
What is DynamoDB?
• Based on Dynamo Model first
published by Amazon back in 2007
• Key-Value NoSQL Database as a
Service
• Low latency performance
• Almost infinite capacity
• No need to worry about underlying
hardware
• Seamless scalability
• High Durability & Availability
• Easy Administration
• Easy Planning (via throughput
parameters)
• Available via API
AdRoll use case
• Adroll Uses AWS to grow by more
than 15000% a year
• Needed high-performance, flexible
platform to swiftly sync data for
worldwide audience
• Processes 50 TB of data a day
• Serves 50 billion impressions a day
• Stores 1.5 PB of data
• Worldwide deployment minimizes
latency
How DynamoDB works?
VPC
Endpoints
April 2017
Auto
Scaling
June 2017
DynamoDB
Accelerator (DAX)
April 2017
Time to
Live (TTL)
February 2017
Global Tables
N E W !
Backup and
Restore
N E W !
Amazon DynamoDB
D e l i v e r i n g o n c u s t o m e r n e e d s
Encryption at rest
Das Bild kann nicht angezeigt werden.
N E W !
February 2018November
2017
November
2017
Programming with DynamoDB
SDKs overview
DynamoDB API Overview
•CreateTable
•DeleteTable
•DescribeLimits
•DescribeTable
•DescribeTimeToLive
•ListTables
•UpdateTable
•UpdateTimeToLive
•BatchGetItem
•BatchWriteItem
•DeleteItem
•GetItem
•PutItem
•UpdateItem
•Query
•Scan
•ListTagsOfResource
•TagResource
•UntagResource
DynamoDB Streams API
•DescribeStream
•GetRecords
•GetShardIterator
•ListStreams
Tables Items Tags
Local version of DynamoDB
The downloadable version of DynamoDB is provided as an executable .jar file. The
application runs on Windows, Linux, macOS X, and other platforms that support
Java.
<!--Dependency:-->
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>DynamoDBLocal</artifactId>
<version>[1.11,2.0)</version>
</dependency>
</dependencies>
<!--Custom repository:-->
<repositories>
<repository>
<id>dynamodb-local-oregon</id>
<name>DynamoDB Local Release Repository</name>
<url>https://s3-us-west-2.amazonaws.com/dynamodb-
local/release</url>
</repository>
</repositories>
To use DynamoDB in your application as a
dependency (add to POM)
•-cors value (you must provide a comma-
separated "allow" list of specific domains)
•-dbPath value
•-delayTransientStatuses
•-help
•-inMemory
•-optimizeDbBeforeStartup
•-port (8000 by default)
•-sharedDb
Main options for local version of
DynamoDB
DynamoDB overview:
Tables, Items, Indexes, Queries
DynamoDB: Tables, Items, Data Types
Data Distribution: Partition Key
Data Distribution: Partition & Sort Key
Why do we need indexes?
• Functions & predicates
support
• ==, >, <, <=, >=
• “between”
• “in”
• “contains”
• sorted results
• Counts
• top / bottom values
• Queries on the values different
from Partition & Sort Key for
the table
• Faster reads LSI only (No need
to scan the entire table and
go through all partitions)
Local Secondary Index
Global Secondary Index
GSI or LSI?
Global Secondary Index Local Secondary Index
• No Limits for index size
• Separate allocation of Read &
Write Capacity Units
• Eventual consistency only
• Index is stored together with the
partition, so it’s size is limited to
10 GB
• Uses RCU & WCU allocated to
the table itself
• Strong consistency available
Queries
DynamoDB: Provisioning,
Performance & Scaling
Write & Read Capacity Units
Provisioned at the table level / at
the GSI level
• Write capacity units (WCUs) are
measured in 1 KB per second
• Read capacity units (RCUs) are
measured in 4 KB per second
• RCUs measure strictly consistent
reads
• Eventually consistent reads cost
½ of consistent reads
• Read and Write throughput are
independent
Partitioning math
Number of partitions
By Capacity (Total RCU / 3000) + (Total WCU / 1000)
By Size Total Size / 10 GB
Total Partitions CEILING(MAX(Capacity, Size))
RCUs per partition = 5000/3 = 1666.67
WCUs per partition = 500/3 = 166.67
Data/Partition = 3.33 GB
As RCUs and WCUs
are uniformly
spread across
partitions
Table size = 8 GB, RCUs = 5000, WCUs = 500
Partitioning math: Example
Number of partitions
By Capacity (5000 / 3000) + (500 / 1000) = 2.17
By Size 8 / 10 = 0.8
Total Partitions CEILING(MAX(2.17, 0.8)) = 3
What happens when the data volume grows?
Primary key selection can affect performance
Heat map shows
that the data is
evenly distributed
But some
partitions can be
SLOW (usage
pattern)
Used from:
http://segment.com/
blog
How your table adapts to changes?
Bursting
• DynamoDB retains up to 300 seconds of unused read and write
capacity of a partition’s throughput to be able to burst the
throughtput
• Burst occurs automatically and during occasional burst extra
capacity can be consumed very quickly
Throttling
Throttling occurs if sustained
throughput goes beyond
provisioned throughput per
partition. The main reasons
for throttling are:
• Non-uniform workloads
• Hot keys/hot partitions
• Very large items
RCUs per partition = 5000/3 = 1666.67
WCUs per partition = 500/3 = 166.67
Data/Partition = 3.33 GB
Table size = 8 GB, RCUs = 5000, WCUs
= 500
If the load goes above 1666 RCU / 166
WCU throttling will occur
The most obvious solution is to
increase the throughput
Design For Uniform Data Access
• Two main factors:
• The primary key selection
• The workload patterns for individual
items
• Analyzing data access pattern (DYI
ELK solution as an option)
• Track & analyze hot keys
• Track & analyze partitions size
• Track index utilization
• Choosing the right partition key
• DeviceID (well defined time series)
• UserID ?
• Mitigate
• Block hot keys
• Throttle requests on API Level
• Add salt to key http://pezcame.com/d3JvbmcgZG9vcg/
Calculating capacity for Tables & Indexes
1. Is it RCU or WCU
2. Calculate number of items
per second as reads &
writes are provisioned by
second
3. Calculate number of
actions per item
4. Multiply items per second
times Actions per item
5. In case of reads define if it
is eventually consistent
! Do not forget to include any
LSI in this calculations & do
separate calculations for GSIs
900 reads per minute and the size of
the item is 7 KB eventual consistency
for reads is ok
Example
1. Read (4 KB per operation)
2. 900 / 60 = 15 (items per second)
3. Each item needs 2 operations
4. 2 operations per item * 15 items
per second = 30
5. 30 / 2 (as we are using eventual
consistency) = 15 RCU
Basic Limits for DynamoDB
Limit Per Table Per Account
Max WCU (default / max) 10000 / none 20000 / none
Max RCU (default / max) 10000 / none 20000 / none
Number of tables per region - 256
Max Item Size 400 KB -
Number of Secondary Indexes 5 -
Size of Partition Key 2048 bytes -
Size of Sort Key 1024 bytes -
Default limits for DynamoDB for US.East-1(N.Virginia) are different:
40000 RCU & WCU per table and 80000 RCU & WCU per account
Auto-Scaling for DynamoDB
• DynamoDB has a
functionality to scale up and
down in response to the
traffic pattern
• To use Auto-Scaling you
need to define a scaling
policy (target utilization &
min / max provisioned
capacity)
• You can define auto-scaling
policy for reads and writes
separately. In addition, you
can auto-scale GSI
Approach for Scaling
• You can increase capacity as many times as you want
• You can decrease the capacity 4 times per day (GMT timezone)
+ 1 decrease for each 1 hour of stable load (so maximum, you
can decrease up to 28 times)
Monitoring DynamoDB performance
• Monitor Retries on App side
• Capture keys & metrics for request
with particular keys
Metrics to alert on:
• SuccessfulRequestLatency (root
cause: network issue / table design)
• ConsumedReadCapacityUnits &
ConsumedWriteCapacityUnits (alert
when close to 80% or less)
• ReadThrottleEvents &
WriteThrottleEvents (should always
be equal zero)
Shema modelling techniques
1:1
• Simplest Case
• Just use a table
with single Partition
Key
• Examples:
• Users
• Partition Key =
UserId
• Games
• Partition Key =
GameId
• Retrieve data by Id
or create an Index
1:N
• Most often case
• Use a table with Partition Key & Sort Key
• Examples (One User can play multiple games):
• Partition Key = UserId
• Sort Key = GameId
• Advanced queries available with the use of Sort Key
• Index can be a good option as well
N:M
• Two tables with inverted Partition
& Sort Key
• Application / “stored
procedures” is responsible for
data consistency
• Use GSIs for query data
Multi-tenancy
• Use tenant id as the
hash key
• Application / “stored
procedures” is
responsible for data
consistency
• Use GSIs for query
data
Working with large items
• Use One-to-Many Tables Instead Of
Large Set Attributes
• Compress Large Attribute Values
• For instance, you can compress these
items using DynamoDB SDK for Java or .NET
• Store Large Attribute Values in Amazon
S3
• Use S3 Object metadata & tags to store
relevant data
• Utilize Lambda & Triggers to manage
references between Items in DynamoDB
and objects in S3
• Break Up Large Attributes Across
Multiple Items
In-Memory Acceleration with DAX
What is DAX?
AX is a DynamoDB-compatible caching
service.
• It reduces the response times of
eventually-consistent read workloads
• DAX reduces operational and
application complexity
• DAX provides increased throughput
and potential operational cost
savings reduces need for over-
provision read capacity units
• DAX provides automatic failover both
for master & read replicas
How DAX works?
• GetItem
• BatchGetItem
• Query
• Scan
• PutItem
• UpdateItem
• DeleteItem
• BatchWriteItem
Consistency Models in DAX
• Read
• Eventual consistency by default
• Operation which require strong
consistency are served by
DynamoDB
• Consistency for this case depends
on the way of how DynamoDB
Tables are used by different apps
• TTL is very important and should be
adopted to the use case
• Write
• Eventual consistency for writes &
possibility of deviations
• Write-Through
• Write-Around
When not to use DAX?
• Applications that require strongly
consistent reads.
• Applications that do not require
microsecond response times for
reads.
• Applications that are write-
intensive, or that do not perform
much read activity.
• Applications that are already
using a different caching solution
with DynamoDB, and are using
their own client-side logic for
working with that caching solution.
DAX provisioning and management
• Create a Subnet Group
• Create IAM service role
• Define DynamoDB tables by the
role permissions
• Create DAX cluster
• Define Subnet Group
• Define Instance types
• Define number of Read Replicas
• Configure Security Groups
• Open port 8111
• Adjust additional parameters
Configuring additional parameters with DAX
• Parameter Groups
• Security Groups
• Cluster ARN
• arn:aws:dax:region:accountID:cache/clusterName
• Cluster Endpoint
• myDAXcluster.2cmrwl.clustercfg.dax.use1.cache.amazonaws.com:8111
• Node Endpoint
• myDAXcluster-a.2cmrwl.clustercfg.dax.use1.cache.amazonaws.com:8111
• Subnet Groups
• Events
• Maintenance Window
Scaling DAX cluster
• DAX cluster
• Master (one master at any
time)
• Read Replicas (up to 10 read
replicas)
• Vertical Scaling
• dax.r3.large (13 GiB)
• dax.r3.xlarge (26 GiB)
• dax.r3.2xlarge (54 GiB)
• dax.r3.4xlarge (108 GiB)
• dax.r3.8xlarge (216 GiB)
• Horizontal Scaling (adding
additional Read Replicas)
Monitoring DAX
• CPU Utilization
• Item Cache Hits / Misses
• Query Cache Hits / Misses
• Scan Cache Hits / Misses
• Total Requests
• Failed Requests (indicates
server side errors)
• Error Requests (indicates user
errors)
• Fault Requests
• per Operation Requests count
Streams, Triggers & TTL
DynamoDB Streams
• DynamoDB Streams captures a time-ordered sequence of
item-level modifications (stored up to 24 hours)
• A DynamoDB stream is an ordered flow of information about
changes to items in an Amazon DynamoDB table
DynamoDB Streams guarantees the following:
• Each stream record appears exactly once in the stream.
• For each item that is modified in a DynamoDB table, the
stream records appear in the same sequence as the actual
modifications to the item.
Enabling a Stream
• StreamEnabled—specifies whether a
stream is enabled (true) or disabled
(false) for the table.
• StreamViewType—specifies the
information that will be written to the
stream whenever data in the table is
modified:
• KEYS_ONLY—only the key attributes of the
modified item.
• NEW_IMAGE—the entire item, as it
appears after it was modified.
• OLD_IMAGE—the entire item, as it
appeared before it was modified.
• NEW_AND_OLD_IMAGES—both the new
and the old images of the item.
Each stream has it’s own
unique ARN
How Stream is organized?
• Child / Parent Shard
• Shards scaling
• Shard wiped out
after 24 hours
• App working with
shards via SDK
Working with the Stream
Connect to Stream using it’s
endpoint and than:
• Use DynamoDB Streams SDK to
work with Streams in your
application
• or use DynamoDB Streams Kinesis
Adapter to process Streams data
with Kinesis
• or trigger Lambda function to
process data produced by
DynamoDB Stream
• you can also catch TTL events and
process the items deleted by TTL
Triggers & AWS Lambda: Short Intro
EVENT SOURCE FUNCTION SERVICES
(ANYTHING)
Changes in
data state
Requests to
endpoints
Change in
resource
• Java
• Python
• Node.js
• C# Core
• More
coming …
Amazon DynamoDB and AWS Lambda
integration
Stream-based model – AWS Lambda polls the stream 4 times per
second and, when it detects new records, invokes your Lambda
by passing the update event as parameter.
You maintain event source mapping. It describes which stream
maps to which Lambda function.
Synchronous invocation – AWS Lambda invokes a Lambda
function using the RequestResponse invocation type (synchronous
invocation).
Event structure – The event your Lambda function receives is the
table update information AWS Lambda reads from your stream.
Example: Indexing data in DynamoDB
Security & Control
Security & Control
IAM for access
management
• IAM Users
• IAM Roles
• Conditions
• STS for applications
VPC
• Subnet Groups & Security
Groups for DAX
• VPC Endpoints for
DynamoDB
Using Conditions
You can specify conditions that
determine how a permissions policy
takes effect. You can:
• Grant permissions on a table, but
restrict access to specific items in
that table based on certain
primary key values.
• Hide information so that only a
subset of attributes are visible to
the user.
• You use the IAM Condition
element to implement a fine-
grained access control policy.
"Sid": "AllowAccessToOnlyItemsMatchingUserID",
"Effect": "Allow",
"Action":
[ "dynamodb:GetItem",
"dynamodb:BatchGetItem", "dynamodb:Query",
"dynamodb:PutItem", "dynamodb:UpdateItem",
"dynamodb:DeleteItem",
"dynamodb:BatchWriteItem" ],
"Resource":
[ "arn:aws:dynamodb:us-west-
2:123456789012:table/GameScores" ],
"Condition":
{ "ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": [
"${www.amazon.com:user_id}" ],
"dynamodb:Attributes": [ "UserId",
"GameTitle", "Wins", "Losses", "TopScore",
"TopScoreDateTime" ] },
"StringEqualsIfExists":
{ "dynamodb:Select": "SPECIFIC_ATTRIBUTES" }
Cost optimization with DynamoDB
Cost optimization with DynamoDB
• Proper key selection /
monitoring and avoiding hot
keys
• Avoiding storing & processing
large attributes (store
references to S3 only)
• DAX for Read-Heavy
workloads
• Auto-Scaling with small
increments for spiky workloads
Thank you for your attention!

More Related Content

What's hot

AWS (Amazon Redshift) presentation
AWS (Amazon Redshift) presentationAWS (Amazon Redshift) presentation
AWS (Amazon Redshift) presentationVolodymyr Rovetskiy
 
Amazon DynamoDB Lessen's Learned by Beginner
Amazon DynamoDB Lessen's Learned by BeginnerAmazon DynamoDB Lessen's Learned by Beginner
Amazon DynamoDB Lessen's Learned by BeginnerHirokazu Tokuno
 
AWS July Webinar Series: Amazon Redshift Optimizing Performance
AWS July Webinar Series: Amazon Redshift Optimizing PerformanceAWS July Webinar Series: Amazon Redshift Optimizing Performance
AWS July Webinar Series: Amazon Redshift Optimizing PerformanceAmazon Web Services
 
(DAT201) Introduction to Amazon Redshift
(DAT201) Introduction to Amazon Redshift(DAT201) Introduction to Amazon Redshift
(DAT201) Introduction to Amazon RedshiftAmazon Web Services
 
Maryna Popova "Deep dive AWS Redshift"
Maryna Popova "Deep dive AWS Redshift"Maryna Popova "Deep dive AWS Redshift"
Maryna Popova "Deep dive AWS Redshift"Lviv Startup Club
 
A tour of Amazon Redshift
A tour of Amazon RedshiftA tour of Amazon Redshift
A tour of Amazon RedshiftKel Graham
 
AWS July Webinar Series - Getting Started with Amazon DynamoDB
AWS July Webinar Series - Getting Started with Amazon DynamoDBAWS July Webinar Series - Getting Started with Amazon DynamoDB
AWS July Webinar Series - Getting Started with Amazon DynamoDBAmazon Web Services
 
Amazon Redshift Deep Dive - February Online Tech Talks
Amazon Redshift Deep Dive - February Online Tech TalksAmazon Redshift Deep Dive - February Online Tech Talks
Amazon Redshift Deep Dive - February Online Tech TalksAmazon Web Services
 
Best Practices for Data Warehousing with Amazon Redshift | AWS Public Sector ...
Best Practices for Data Warehousing with Amazon Redshift | AWS Public Sector ...Best Practices for Data Warehousing with Amazon Redshift | AWS Public Sector ...
Best Practices for Data Warehousing with Amazon Redshift | AWS Public Sector ...Amazon Web Services
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon RedshiftAmazon Web Services
 
Amazon Redshift: Performance Tuning and Optimization
Amazon Redshift: Performance Tuning and OptimizationAmazon Redshift: Performance Tuning and Optimization
Amazon Redshift: Performance Tuning and OptimizationAmazon Web Services
 
SQL to NoSQL Best Practices with Amazon DynamoDB - AWS July 2016 Webinar Se...
SQL to NoSQL   Best Practices with Amazon DynamoDB - AWS July 2016 Webinar Se...SQL to NoSQL   Best Practices with Amazon DynamoDB - AWS July 2016 Webinar Se...
SQL to NoSQL Best Practices with Amazon DynamoDB - AWS July 2016 Webinar Se...Amazon Web Services
 
Best Practices for Migrating Your Data Warehouse to Amazon Redshift
Best Practices for Migrating Your Data Warehouse to Amazon RedshiftBest Practices for Migrating Your Data Warehouse to Amazon Redshift
Best Practices for Migrating Your Data Warehouse to Amazon RedshiftAmazon Web Services
 
Best practices for Data warehousing with Amazon Redshift - AWS PS Summit Canb...
Best practices for Data warehousing with Amazon Redshift - AWS PS Summit Canb...Best practices for Data warehousing with Amazon Redshift - AWS PS Summit Canb...
Best practices for Data warehousing with Amazon Redshift - AWS PS Summit Canb...Amazon Web Services
 
Building your data warehouse with Redshift
Building your data warehouse with RedshiftBuilding your data warehouse with Redshift
Building your data warehouse with RedshiftAmazon Web Services
 

What's hot (20)

AWS (Amazon Redshift) presentation
AWS (Amazon Redshift) presentationAWS (Amazon Redshift) presentation
AWS (Amazon Redshift) presentation
 
Amazon DynamoDB Lessen's Learned by Beginner
Amazon DynamoDB Lessen's Learned by BeginnerAmazon DynamoDB Lessen's Learned by Beginner
Amazon DynamoDB Lessen's Learned by Beginner
 
Deep Dive on Amazon DynamoDB
Deep Dive on Amazon DynamoDBDeep Dive on Amazon DynamoDB
Deep Dive on Amazon DynamoDB
 
AWS July Webinar Series: Amazon Redshift Optimizing Performance
AWS July Webinar Series: Amazon Redshift Optimizing PerformanceAWS July Webinar Series: Amazon Redshift Optimizing Performance
AWS July Webinar Series: Amazon Redshift Optimizing Performance
 
Amazon DynamoDB Workshop
Amazon DynamoDB WorkshopAmazon DynamoDB Workshop
Amazon DynamoDB Workshop
 
(DAT201) Introduction to Amazon Redshift
(DAT201) Introduction to Amazon Redshift(DAT201) Introduction to Amazon Redshift
(DAT201) Introduction to Amazon Redshift
 
Maryna Popova "Deep dive AWS Redshift"
Maryna Popova "Deep dive AWS Redshift"Maryna Popova "Deep dive AWS Redshift"
Maryna Popova "Deep dive AWS Redshift"
 
Deep Dive on Amazon Redshift
Deep Dive on Amazon RedshiftDeep Dive on Amazon Redshift
Deep Dive on Amazon Redshift
 
A tour of Amazon Redshift
A tour of Amazon RedshiftA tour of Amazon Redshift
A tour of Amazon Redshift
 
AWS July Webinar Series - Getting Started with Amazon DynamoDB
AWS July Webinar Series - Getting Started with Amazon DynamoDBAWS July Webinar Series - Getting Started with Amazon DynamoDB
AWS July Webinar Series - Getting Started with Amazon DynamoDB
 
Amazon Redshift Deep Dive - February Online Tech Talks
Amazon Redshift Deep Dive - February Online Tech TalksAmazon Redshift Deep Dive - February Online Tech Talks
Amazon Redshift Deep Dive - February Online Tech Talks
 
Best Practices for Data Warehousing with Amazon Redshift | AWS Public Sector ...
Best Practices for Data Warehousing with Amazon Redshift | AWS Public Sector ...Best Practices for Data Warehousing with Amazon Redshift | AWS Public Sector ...
Best Practices for Data Warehousing with Amazon Redshift | AWS Public Sector ...
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon Redshift
 
Amazon Redshift: Performance Tuning and Optimization
Amazon Redshift: Performance Tuning and OptimizationAmazon Redshift: Performance Tuning and Optimization
Amazon Redshift: Performance Tuning and Optimization
 
Amazon Redshift Masterclass
Amazon Redshift MasterclassAmazon Redshift Masterclass
Amazon Redshift Masterclass
 
Amazon DynamoDB 深入探討
Amazon DynamoDB 深入探討Amazon DynamoDB 深入探討
Amazon DynamoDB 深入探討
 
SQL to NoSQL Best Practices with Amazon DynamoDB - AWS July 2016 Webinar Se...
SQL to NoSQL   Best Practices with Amazon DynamoDB - AWS July 2016 Webinar Se...SQL to NoSQL   Best Practices with Amazon DynamoDB - AWS July 2016 Webinar Se...
SQL to NoSQL Best Practices with Amazon DynamoDB - AWS July 2016 Webinar Se...
 
Best Practices for Migrating Your Data Warehouse to Amazon Redshift
Best Practices for Migrating Your Data Warehouse to Amazon RedshiftBest Practices for Migrating Your Data Warehouse to Amazon Redshift
Best Practices for Migrating Your Data Warehouse to Amazon Redshift
 
Best practices for Data warehousing with Amazon Redshift - AWS PS Summit Canb...
Best practices for Data warehousing with Amazon Redshift - AWS PS Summit Canb...Best practices for Data warehousing with Amazon Redshift - AWS PS Summit Canb...
Best practices for Data warehousing with Amazon Redshift - AWS PS Summit Canb...
 
Building your data warehouse with Redshift
Building your data warehouse with RedshiftBuilding your data warehouse with Redshift
Building your data warehouse with Redshift
 

Similar to Deep Dive into DynamoDB

AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...Amazon Web Services
 
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB Day
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB DayGetting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB Day
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB DayAmazon Web Services Korea
 
Selecting the Right AWS Database Solution - AWS 2017 Online Tech Talks
Selecting the Right AWS Database Solution - AWS 2017 Online Tech TalksSelecting the Right AWS Database Solution - AWS 2017 Online Tech Talks
Selecting the Right AWS Database Solution - AWS 2017 Online Tech TalksAmazon Web Services
 
初探AWS 平台上的 NoSQL 雲端資料庫服務
初探AWS 平台上的 NoSQL 雲端資料庫服務初探AWS 平台上的 NoSQL 雲端資料庫服務
初探AWS 平台上的 NoSQL 雲端資料庫服務Amazon Web Services
 
Getting Started with Managed Database Services on AWS - September 2016 Webina...
Getting Started with Managed Database Services on AWS - September 2016 Webina...Getting Started with Managed Database Services on AWS - September 2016 Webina...
Getting Started with Managed Database Services on AWS - September 2016 Webina...Amazon Web Services
 
Building a Large Scale SEO/SEM Application with Apache Solr
Building a Large Scale SEO/SEM Application with Apache SolrBuilding a Large Scale SEO/SEM Application with Apache Solr
Building a Large Scale SEO/SEM Application with Apache SolrRahul Jain
 
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
Migration to ClickHouse. Practical guide, by Alexander ZaitsevMigration to ClickHouse. Practical guide, by Alexander Zaitsev
Migration to ClickHouse. Practical guide, by Alexander ZaitsevAltinity Ltd
 
MariaDB ColumnStore
MariaDB ColumnStoreMariaDB ColumnStore
MariaDB ColumnStoreMariaDB plc
 
Highlights of AWS ReInvent 2023 (Announcements and Best Practices)
Highlights of AWS ReInvent 2023 (Announcements and Best Practices)Highlights of AWS ReInvent 2023 (Announcements and Best Practices)
Highlights of AWS ReInvent 2023 (Announcements and Best Practices)Emprovise
 
Best Practices for Migrating your Data Warehouse to Amazon Redshift
Best Practices for Migrating your Data Warehouse to Amazon RedshiftBest Practices for Migrating your Data Warehouse to Amazon Redshift
Best Practices for Migrating your Data Warehouse to Amazon RedshiftAmazon Web Services
 
AWS June 2016 Webinar Series - Amazon Redshift or Big Data Analytics
AWS June 2016 Webinar Series - Amazon Redshift or Big Data AnalyticsAWS June 2016 Webinar Series - Amazon Redshift or Big Data Analytics
AWS June 2016 Webinar Series - Amazon Redshift or Big Data AnalyticsAmazon Web Services
 
AWS March 2016 Webinar Series - Managed Database Services on Amazon Web Services
AWS March 2016 Webinar Series - Managed Database Services on Amazon Web ServicesAWS March 2016 Webinar Series - Managed Database Services on Amazon Web Services
AWS March 2016 Webinar Series - Managed Database Services on Amazon Web ServicesAmazon Web Services
 
AWS Webcast - Build high-scale applications with Amazon DynamoDB
AWS Webcast - Build high-scale applications with Amazon DynamoDBAWS Webcast - Build high-scale applications with Amazon DynamoDB
AWS Webcast - Build high-scale applications with Amazon DynamoDBAmazon Web Services
 
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_SummaryHiram Fleitas León
 
Best Practices for Migrating your Data Warehouse to Amazon Redshift
Best Practices for Migrating your Data Warehouse to Amazon RedshiftBest Practices for Migrating your Data Warehouse to Amazon Redshift
Best Practices for Migrating your Data Warehouse to Amazon RedshiftAmazon Web Services
 
Maaz Anjum - IOUG Collaborate 2013 - An Insight into Space Realization on ODA...
Maaz Anjum - IOUG Collaborate 2013 - An Insight into Space Realization on ODA...Maaz Anjum - IOUG Collaborate 2013 - An Insight into Space Realization on ODA...
Maaz Anjum - IOUG Collaborate 2013 - An Insight into Space Realization on ODA...Maaz Anjum
 

Similar to Deep Dive into DynamoDB (20)

AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
 
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB Day
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB DayGetting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB Day
Getting Strated with Amazon Dynamo DB (Jim Scharf) - AWS DB Day
 
Processing and Analytics
Processing and AnalyticsProcessing and Analytics
Processing and Analytics
 
Selecting the Right AWS Database Solution - AWS 2017 Online Tech Talks
Selecting the Right AWS Database Solution - AWS 2017 Online Tech TalksSelecting the Right AWS Database Solution - AWS 2017 Online Tech Talks
Selecting the Right AWS Database Solution - AWS 2017 Online Tech Talks
 
初探AWS 平台上的 NoSQL 雲端資料庫服務
初探AWS 平台上的 NoSQL 雲端資料庫服務初探AWS 平台上的 NoSQL 雲端資料庫服務
初探AWS 平台上的 NoSQL 雲端資料庫服務
 
Getting Started with Managed Database Services on AWS - September 2016 Webina...
Getting Started with Managed Database Services on AWS - September 2016 Webina...Getting Started with Managed Database Services on AWS - September 2016 Webina...
Getting Started with Managed Database Services on AWS - September 2016 Webina...
 
Building a Large Scale SEO/SEM Application with Apache Solr
Building a Large Scale SEO/SEM Application with Apache SolrBuilding a Large Scale SEO/SEM Application with Apache Solr
Building a Large Scale SEO/SEM Application with Apache Solr
 
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
Migration to ClickHouse. Practical guide, by Alexander ZaitsevMigration to ClickHouse. Practical guide, by Alexander Zaitsev
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
 
MariaDB ColumnStore
MariaDB ColumnStoreMariaDB ColumnStore
MariaDB ColumnStore
 
Data Collection and Storage
Data Collection and StorageData Collection and Storage
Data Collection and Storage
 
Deep Dive - DynamoDB
Deep Dive - DynamoDBDeep Dive - DynamoDB
Deep Dive - DynamoDB
 
Highlights of AWS ReInvent 2023 (Announcements and Best Practices)
Highlights of AWS ReInvent 2023 (Announcements and Best Practices)Highlights of AWS ReInvent 2023 (Announcements and Best Practices)
Highlights of AWS ReInvent 2023 (Announcements and Best Practices)
 
Best Practices for Migrating your Data Warehouse to Amazon Redshift
Best Practices for Migrating your Data Warehouse to Amazon RedshiftBest Practices for Migrating your Data Warehouse to Amazon Redshift
Best Practices for Migrating your Data Warehouse to Amazon Redshift
 
AWS June 2016 Webinar Series - Amazon Redshift or Big Data Analytics
AWS June 2016 Webinar Series - Amazon Redshift or Big Data AnalyticsAWS June 2016 Webinar Series - Amazon Redshift or Big Data Analytics
AWS June 2016 Webinar Series - Amazon Redshift or Big Data Analytics
 
AWS March 2016 Webinar Series - Managed Database Services on Amazon Web Services
AWS March 2016 Webinar Series - Managed Database Services on Amazon Web ServicesAWS March 2016 Webinar Series - Managed Database Services on Amazon Web Services
AWS March 2016 Webinar Series - Managed Database Services on Amazon Web Services
 
AWS Webcast - Build high-scale applications with Amazon DynamoDB
AWS Webcast - Build high-scale applications with Amazon DynamoDBAWS Webcast - Build high-scale applications with Amazon DynamoDB
AWS Webcast - Build high-scale applications with Amazon DynamoDB
 
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
 
DynamodbDB Deep Dive
DynamodbDB Deep DiveDynamodbDB Deep Dive
DynamodbDB Deep Dive
 
Best Practices for Migrating your Data Warehouse to Amazon Redshift
Best Practices for Migrating your Data Warehouse to Amazon RedshiftBest Practices for Migrating your Data Warehouse to Amazon Redshift
Best Practices for Migrating your Data Warehouse to Amazon Redshift
 
Maaz Anjum - IOUG Collaborate 2013 - An Insight into Space Realization on ODA...
Maaz Anjum - IOUG Collaborate 2013 - An Insight into Space Realization on ODA...Maaz Anjum - IOUG Collaborate 2013 - An Insight into Space Realization on ODA...
Maaz Anjum - IOUG Collaborate 2013 - An Insight into Space Realization on ODA...
 

More from AWS Germany

Analytics Web Day | From Theory to Practice: Big Data Stories from the Field
Analytics Web Day | From Theory to Practice: Big Data Stories from the FieldAnalytics Web Day | From Theory to Practice: Big Data Stories from the Field
Analytics Web Day | From Theory to Practice: Big Data Stories from the FieldAWS Germany
 
Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...
Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...
Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...AWS Germany
 
Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Modern Applications Web Day | Impress Your Friends with Your First Serverless...Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Modern Applications Web Day | Impress Your Friends with Your First Serverless...AWS Germany
 
Modern Applications Web Day | Manage Your Infrastructure and Configuration on...
Modern Applications Web Day | Manage Your Infrastructure and Configuration on...Modern Applications Web Day | Manage Your Infrastructure and Configuration on...
Modern Applications Web Day | Manage Your Infrastructure and Configuration on...AWS Germany
 
Modern Applications Web Day | Container Workloads on AWS
Modern Applications Web Day | Container Workloads on AWSModern Applications Web Day | Container Workloads on AWS
Modern Applications Web Day | Container Workloads on AWSAWS Germany
 
Modern Applications Web Day | Continuous Delivery to Amazon EKS with Spinnaker
Modern Applications Web Day | Continuous Delivery to Amazon EKS with SpinnakerModern Applications Web Day | Continuous Delivery to Amazon EKS with Spinnaker
Modern Applications Web Day | Continuous Delivery to Amazon EKS with SpinnakerAWS Germany
 
Building Smart Home skills for Alexa
Building Smart Home skills for AlexaBuilding Smart Home skills for Alexa
Building Smart Home skills for AlexaAWS Germany
 
Hotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructure
Hotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructureHotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructure
Hotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructureAWS Germany
 
Wild Rydes with Big Data/Kinesis focus: AWS Serverless Workshop
Wild Rydes with Big Data/Kinesis focus: AWS Serverless WorkshopWild Rydes with Big Data/Kinesis focus: AWS Serverless Workshop
Wild Rydes with Big Data/Kinesis focus: AWS Serverless WorkshopAWS Germany
 
Log Analytics with AWS
Log Analytics with AWSLog Analytics with AWS
Log Analytics with AWSAWS Germany
 
Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS
Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS
Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS AWS Germany
 
AWS Programme für Nonprofits
AWS Programme für NonprofitsAWS Programme für Nonprofits
AWS Programme für NonprofitsAWS Germany
 
Microservices and Data Design
Microservices and Data DesignMicroservices and Data Design
Microservices and Data DesignAWS Germany
 
Serverless vs. Developers – the real crash
Serverless vs. Developers – the real crashServerless vs. Developers – the real crash
Serverless vs. Developers – the real crashAWS Germany
 
Query your data in S3 with SQL and optimize for cost and performance
Query your data in S3 with SQL and optimize for cost and performanceQuery your data in S3 with SQL and optimize for cost and performance
Query your data in S3 with SQL and optimize for cost and performanceAWS Germany
 
Secret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s VaultSecret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s VaultAWS Germany
 
Scale to Infinity with ECS
Scale to Infinity with ECSScale to Infinity with ECS
Scale to Infinity with ECSAWS Germany
 
Containers on AWS - State of the Union
Containers on AWS - State of the UnionContainers on AWS - State of the Union
Containers on AWS - State of the UnionAWS Germany
 
Deploying and Scaling Your First Cloud Application with Amazon Lightsail
Deploying and Scaling Your First Cloud Application with Amazon LightsailDeploying and Scaling Your First Cloud Application with Amazon Lightsail
Deploying and Scaling Your First Cloud Application with Amazon LightsailAWS Germany
 

More from AWS Germany (20)

Analytics Web Day | From Theory to Practice: Big Data Stories from the Field
Analytics Web Day | From Theory to Practice: Big Data Stories from the FieldAnalytics Web Day | From Theory to Practice: Big Data Stories from the Field
Analytics Web Day | From Theory to Practice: Big Data Stories from the Field
 
Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...
Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...
Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...
 
Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Modern Applications Web Day | Impress Your Friends with Your First Serverless...Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Modern Applications Web Day | Impress Your Friends with Your First Serverless...
 
Modern Applications Web Day | Manage Your Infrastructure and Configuration on...
Modern Applications Web Day | Manage Your Infrastructure and Configuration on...Modern Applications Web Day | Manage Your Infrastructure and Configuration on...
Modern Applications Web Day | Manage Your Infrastructure and Configuration on...
 
Modern Applications Web Day | Container Workloads on AWS
Modern Applications Web Day | Container Workloads on AWSModern Applications Web Day | Container Workloads on AWS
Modern Applications Web Day | Container Workloads on AWS
 
Modern Applications Web Day | Continuous Delivery to Amazon EKS with Spinnaker
Modern Applications Web Day | Continuous Delivery to Amazon EKS with SpinnakerModern Applications Web Day | Continuous Delivery to Amazon EKS with Spinnaker
Modern Applications Web Day | Continuous Delivery to Amazon EKS with Spinnaker
 
Building Smart Home skills for Alexa
Building Smart Home skills for AlexaBuilding Smart Home skills for Alexa
Building Smart Home skills for Alexa
 
Hotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructure
Hotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructureHotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructure
Hotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructure
 
Wild Rydes with Big Data/Kinesis focus: AWS Serverless Workshop
Wild Rydes with Big Data/Kinesis focus: AWS Serverless WorkshopWild Rydes with Big Data/Kinesis focus: AWS Serverless Workshop
Wild Rydes with Big Data/Kinesis focus: AWS Serverless Workshop
 
Log Analytics with AWS
Log Analytics with AWSLog Analytics with AWS
Log Analytics with AWS
 
Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS
Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS
Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS
 
AWS Programme für Nonprofits
AWS Programme für NonprofitsAWS Programme für Nonprofits
AWS Programme für Nonprofits
 
Microservices and Data Design
Microservices and Data DesignMicroservices and Data Design
Microservices and Data Design
 
Serverless vs. Developers – the real crash
Serverless vs. Developers – the real crashServerless vs. Developers – the real crash
Serverless vs. Developers – the real crash
 
Query your data in S3 with SQL and optimize for cost and performance
Query your data in S3 with SQL and optimize for cost and performanceQuery your data in S3 with SQL and optimize for cost and performance
Query your data in S3 with SQL and optimize for cost and performance
 
Secret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s VaultSecret Management with Hashicorp’s Vault
Secret Management with Hashicorp’s Vault
 
EKS Workshop
 EKS Workshop EKS Workshop
EKS Workshop
 
Scale to Infinity with ECS
Scale to Infinity with ECSScale to Infinity with ECS
Scale to Infinity with ECS
 
Containers on AWS - State of the Union
Containers on AWS - State of the UnionContainers on AWS - State of the Union
Containers on AWS - State of the Union
 
Deploying and Scaling Your First Cloud Application with Amazon Lightsail
Deploying and Scaling Your First Cloud Application with Amazon LightsailDeploying and Scaling Your First Cloud Application with Amazon Lightsail
Deploying and Scaling Your First Cloud Application with Amazon Lightsail
 

Recently uploaded

How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 

Recently uploaded (20)

How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 

Deep Dive into DynamoDB

  • 1. Andrey Zaychikov, Specialist SA – DB Migrations, EMEA Deep Dive to Amazon DynamoDB
  • 2. Agenda • Why NoSQL? • What is DynamoDB? • Programming with DynamoDB • Tables, Items, Indexes, Queries • Provisioning, Performance & Scaling • Shema modelling techniques • In-Memory Acceleration with DAX • Streams, Triggers & TTL • Security & Control • Recap of Cost Optimization
  • 3. What was the reason for NoSQL rise? Complexity of data schemes Data volume Uptime
  • 7. Database per workload using AWS services
  • 8. What is DynamoDB? • Based on Dynamo Model first published by Amazon back in 2007 • Key-Value NoSQL Database as a Service • Low latency performance • Almost infinite capacity • No need to worry about underlying hardware • Seamless scalability • High Durability & Availability • Easy Administration • Easy Planning (via throughput parameters) • Available via API
  • 9. AdRoll use case • Adroll Uses AWS to grow by more than 15000% a year • Needed high-performance, flexible platform to swiftly sync data for worldwide audience • Processes 50 TB of data a day • Serves 50 billion impressions a day • Stores 1.5 PB of data • Worldwide deployment minimizes latency
  • 11. VPC Endpoints April 2017 Auto Scaling June 2017 DynamoDB Accelerator (DAX) April 2017 Time to Live (TTL) February 2017 Global Tables N E W ! Backup and Restore N E W ! Amazon DynamoDB D e l i v e r i n g o n c u s t o m e r n e e d s Encryption at rest Das Bild kann nicht angezeigt werden. N E W ! February 2018November 2017 November 2017
  • 15. Local version of DynamoDB The downloadable version of DynamoDB is provided as an executable .jar file. The application runs on Windows, Linux, macOS X, and other platforms that support Java. <!--Dependency:--> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>DynamoDBLocal</artifactId> <version>[1.11,2.0)</version> </dependency> </dependencies> <!--Custom repository:--> <repositories> <repository> <id>dynamodb-local-oregon</id> <name>DynamoDB Local Release Repository</name> <url>https://s3-us-west-2.amazonaws.com/dynamodb- local/release</url> </repository> </repositories> To use DynamoDB in your application as a dependency (add to POM) •-cors value (you must provide a comma- separated "allow" list of specific domains) •-dbPath value •-delayTransientStatuses •-help •-inMemory •-optimizeDbBeforeStartup •-port (8000 by default) •-sharedDb Main options for local version of DynamoDB
  • 20. Why do we need indexes? • Functions & predicates support • ==, >, <, <=, >= • “between” • “in” • “contains” • sorted results • Counts • top / bottom values • Queries on the values different from Partition & Sort Key for the table • Faster reads LSI only (No need to scan the entire table and go through all partitions)
  • 23. GSI or LSI? Global Secondary Index Local Secondary Index • No Limits for index size • Separate allocation of Read & Write Capacity Units • Eventual consistency only • Index is stored together with the partition, so it’s size is limited to 10 GB • Uses RCU & WCU allocated to the table itself • Strong consistency available
  • 26. Write & Read Capacity Units Provisioned at the table level / at the GSI level • Write capacity units (WCUs) are measured in 1 KB per second • Read capacity units (RCUs) are measured in 4 KB per second • RCUs measure strictly consistent reads • Eventually consistent reads cost ½ of consistent reads • Read and Write throughput are independent
  • 27. Partitioning math Number of partitions By Capacity (Total RCU / 3000) + (Total WCU / 1000) By Size Total Size / 10 GB Total Partitions CEILING(MAX(Capacity, Size))
  • 28. RCUs per partition = 5000/3 = 1666.67 WCUs per partition = 500/3 = 166.67 Data/Partition = 3.33 GB As RCUs and WCUs are uniformly spread across partitions Table size = 8 GB, RCUs = 5000, WCUs = 500 Partitioning math: Example Number of partitions By Capacity (5000 / 3000) + (500 / 1000) = 2.17 By Size 8 / 10 = 0.8 Total Partitions CEILING(MAX(2.17, 0.8)) = 3
  • 29. What happens when the data volume grows?
  • 30. Primary key selection can affect performance Heat map shows that the data is evenly distributed But some partitions can be SLOW (usage pattern) Used from: http://segment.com/ blog
  • 31. How your table adapts to changes?
  • 32. Bursting • DynamoDB retains up to 300 seconds of unused read and write capacity of a partition’s throughput to be able to burst the throughtput • Burst occurs automatically and during occasional burst extra capacity can be consumed very quickly
  • 33. Throttling Throttling occurs if sustained throughput goes beyond provisioned throughput per partition. The main reasons for throttling are: • Non-uniform workloads • Hot keys/hot partitions • Very large items RCUs per partition = 5000/3 = 1666.67 WCUs per partition = 500/3 = 166.67 Data/Partition = 3.33 GB Table size = 8 GB, RCUs = 5000, WCUs = 500 If the load goes above 1666 RCU / 166 WCU throttling will occur The most obvious solution is to increase the throughput
  • 34. Design For Uniform Data Access • Two main factors: • The primary key selection • The workload patterns for individual items • Analyzing data access pattern (DYI ELK solution as an option) • Track & analyze hot keys • Track & analyze partitions size • Track index utilization • Choosing the right partition key • DeviceID (well defined time series) • UserID ? • Mitigate • Block hot keys • Throttle requests on API Level • Add salt to key http://pezcame.com/d3JvbmcgZG9vcg/
  • 35. Calculating capacity for Tables & Indexes 1. Is it RCU or WCU 2. Calculate number of items per second as reads & writes are provisioned by second 3. Calculate number of actions per item 4. Multiply items per second times Actions per item 5. In case of reads define if it is eventually consistent ! Do not forget to include any LSI in this calculations & do separate calculations for GSIs 900 reads per minute and the size of the item is 7 KB eventual consistency for reads is ok Example 1. Read (4 KB per operation) 2. 900 / 60 = 15 (items per second) 3. Each item needs 2 operations 4. 2 operations per item * 15 items per second = 30 5. 30 / 2 (as we are using eventual consistency) = 15 RCU
  • 36. Basic Limits for DynamoDB Limit Per Table Per Account Max WCU (default / max) 10000 / none 20000 / none Max RCU (default / max) 10000 / none 20000 / none Number of tables per region - 256 Max Item Size 400 KB - Number of Secondary Indexes 5 - Size of Partition Key 2048 bytes - Size of Sort Key 1024 bytes - Default limits for DynamoDB for US.East-1(N.Virginia) are different: 40000 RCU & WCU per table and 80000 RCU & WCU per account
  • 37. Auto-Scaling for DynamoDB • DynamoDB has a functionality to scale up and down in response to the traffic pattern • To use Auto-Scaling you need to define a scaling policy (target utilization & min / max provisioned capacity) • You can define auto-scaling policy for reads and writes separately. In addition, you can auto-scale GSI
  • 38. Approach for Scaling • You can increase capacity as many times as you want • You can decrease the capacity 4 times per day (GMT timezone) + 1 decrease for each 1 hour of stable load (so maximum, you can decrease up to 28 times)
  • 39. Monitoring DynamoDB performance • Monitor Retries on App side • Capture keys & metrics for request with particular keys Metrics to alert on: • SuccessfulRequestLatency (root cause: network issue / table design) • ConsumedReadCapacityUnits & ConsumedWriteCapacityUnits (alert when close to 80% or less) • ReadThrottleEvents & WriteThrottleEvents (should always be equal zero)
  • 41. 1:1 • Simplest Case • Just use a table with single Partition Key • Examples: • Users • Partition Key = UserId • Games • Partition Key = GameId • Retrieve data by Id or create an Index
  • 42. 1:N • Most often case • Use a table with Partition Key & Sort Key • Examples (One User can play multiple games): • Partition Key = UserId • Sort Key = GameId • Advanced queries available with the use of Sort Key • Index can be a good option as well
  • 43. N:M • Two tables with inverted Partition & Sort Key • Application / “stored procedures” is responsible for data consistency • Use GSIs for query data
  • 44. Multi-tenancy • Use tenant id as the hash key • Application / “stored procedures” is responsible for data consistency • Use GSIs for query data
  • 45. Working with large items • Use One-to-Many Tables Instead Of Large Set Attributes • Compress Large Attribute Values • For instance, you can compress these items using DynamoDB SDK for Java or .NET • Store Large Attribute Values in Amazon S3 • Use S3 Object metadata & tags to store relevant data • Utilize Lambda & Triggers to manage references between Items in DynamoDB and objects in S3 • Break Up Large Attributes Across Multiple Items
  • 47. What is DAX? AX is a DynamoDB-compatible caching service. • It reduces the response times of eventually-consistent read workloads • DAX reduces operational and application complexity • DAX provides increased throughput and potential operational cost savings reduces need for over- provision read capacity units • DAX provides automatic failover both for master & read replicas
  • 48. How DAX works? • GetItem • BatchGetItem • Query • Scan • PutItem • UpdateItem • DeleteItem • BatchWriteItem
  • 49. Consistency Models in DAX • Read • Eventual consistency by default • Operation which require strong consistency are served by DynamoDB • Consistency for this case depends on the way of how DynamoDB Tables are used by different apps • TTL is very important and should be adopted to the use case • Write • Eventual consistency for writes & possibility of deviations • Write-Through • Write-Around
  • 50. When not to use DAX? • Applications that require strongly consistent reads. • Applications that do not require microsecond response times for reads. • Applications that are write- intensive, or that do not perform much read activity. • Applications that are already using a different caching solution with DynamoDB, and are using their own client-side logic for working with that caching solution.
  • 51. DAX provisioning and management • Create a Subnet Group • Create IAM service role • Define DynamoDB tables by the role permissions • Create DAX cluster • Define Subnet Group • Define Instance types • Define number of Read Replicas • Configure Security Groups • Open port 8111 • Adjust additional parameters
  • 52. Configuring additional parameters with DAX • Parameter Groups • Security Groups • Cluster ARN • arn:aws:dax:region:accountID:cache/clusterName • Cluster Endpoint • myDAXcluster.2cmrwl.clustercfg.dax.use1.cache.amazonaws.com:8111 • Node Endpoint • myDAXcluster-a.2cmrwl.clustercfg.dax.use1.cache.amazonaws.com:8111 • Subnet Groups • Events • Maintenance Window
  • 53. Scaling DAX cluster • DAX cluster • Master (one master at any time) • Read Replicas (up to 10 read replicas) • Vertical Scaling • dax.r3.large (13 GiB) • dax.r3.xlarge (26 GiB) • dax.r3.2xlarge (54 GiB) • dax.r3.4xlarge (108 GiB) • dax.r3.8xlarge (216 GiB) • Horizontal Scaling (adding additional Read Replicas)
  • 54. Monitoring DAX • CPU Utilization • Item Cache Hits / Misses • Query Cache Hits / Misses • Scan Cache Hits / Misses • Total Requests • Failed Requests (indicates server side errors) • Error Requests (indicates user errors) • Fault Requests • per Operation Requests count
  • 56. DynamoDB Streams • DynamoDB Streams captures a time-ordered sequence of item-level modifications (stored up to 24 hours) • A DynamoDB stream is an ordered flow of information about changes to items in an Amazon DynamoDB table DynamoDB Streams guarantees the following: • Each stream record appears exactly once in the stream. • For each item that is modified in a DynamoDB table, the stream records appear in the same sequence as the actual modifications to the item.
  • 57. Enabling a Stream • StreamEnabled—specifies whether a stream is enabled (true) or disabled (false) for the table. • StreamViewType—specifies the information that will be written to the stream whenever data in the table is modified: • KEYS_ONLY—only the key attributes of the modified item. • NEW_IMAGE—the entire item, as it appears after it was modified. • OLD_IMAGE—the entire item, as it appeared before it was modified. • NEW_AND_OLD_IMAGES—both the new and the old images of the item. Each stream has it’s own unique ARN
  • 58. How Stream is organized? • Child / Parent Shard • Shards scaling • Shard wiped out after 24 hours • App working with shards via SDK
  • 59. Working with the Stream Connect to Stream using it’s endpoint and than: • Use DynamoDB Streams SDK to work with Streams in your application • or use DynamoDB Streams Kinesis Adapter to process Streams data with Kinesis • or trigger Lambda function to process data produced by DynamoDB Stream • you can also catch TTL events and process the items deleted by TTL
  • 60. Triggers & AWS Lambda: Short Intro EVENT SOURCE FUNCTION SERVICES (ANYTHING) Changes in data state Requests to endpoints Change in resource • Java • Python • Node.js • C# Core • More coming …
  • 61. Amazon DynamoDB and AWS Lambda integration Stream-based model – AWS Lambda polls the stream 4 times per second and, when it detects new records, invokes your Lambda by passing the update event as parameter. You maintain event source mapping. It describes which stream maps to which Lambda function. Synchronous invocation – AWS Lambda invokes a Lambda function using the RequestResponse invocation type (synchronous invocation). Event structure – The event your Lambda function receives is the table update information AWS Lambda reads from your stream.
  • 62. Example: Indexing data in DynamoDB
  • 64. Security & Control IAM for access management • IAM Users • IAM Roles • Conditions • STS for applications VPC • Subnet Groups & Security Groups for DAX • VPC Endpoints for DynamoDB
  • 65. Using Conditions You can specify conditions that determine how a permissions policy takes effect. You can: • Grant permissions on a table, but restrict access to specific items in that table based on certain primary key values. • Hide information so that only a subset of attributes are visible to the user. • You use the IAM Condition element to implement a fine- grained access control policy. "Sid": "AllowAccessToOnlyItemsMatchingUserID", "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem" ], "Resource": [ "arn:aws:dynamodb:us-west- 2:123456789012:table/GameScores" ], "Condition": { "ForAllValues:StringEquals": { "dynamodb:LeadingKeys": [ "${www.amazon.com:user_id}" ], "dynamodb:Attributes": [ "UserId", "GameTitle", "Wins", "Losses", "TopScore", "TopScoreDateTime" ] }, "StringEqualsIfExists": { "dynamodb:Select": "SPECIFIC_ATTRIBUTES" }
  • 67. Cost optimization with DynamoDB • Proper key selection / monitoring and avoiding hot keys • Avoiding storing & processing large attributes (store references to S3 only) • DAX for Read-Heavy workloads • Auto-Scaling with small increments for spiky workloads
  • 68. Thank you for your attention!