SlideShare a Scribd company logo
1 of 100
Download to read offline
Under the Covers of DynamoDB

                Philip Fitzsimons
    Manager, Solution Architecture
Overview
 1. Getting started

 2. Customer story: Royal Opera House

 3. Data modeling

 4. Partitioning

 5. Reporting & Analytics
Getting started
DynamoDB is a managed
NoSQL database service.

Store and retrieve any amount of data.
  Serve any level of request traffic.
Without the operational burden.
Consistent, predictable performance.

        Single digit millisecond latency.
         Backed on solid-state drives.
Flexible data model.

Key/attribute pairs. No schema required.
    Easy to create. Easy to adjust.
Seamless scalability.

No table size limits. Unlimited storage.
            No downtime.
Durable.

             Consistent, disk only writes.
Replication across data centers and availability zones.
Without the operational burden.
Focus on your app.
Two decisions + three clicks
     = ready for use
Level of throughput
        Primary keys


Two decisions + three clicks
     = ready for use
Level of throughput
        Primary keys


Two decisions + three clicks
     = ready for use
Provisioned throughput.


Reserve IOPS for reads and writes.
  Scale up for down at any time.
Pay per capacity unit.


Priced per hour of provisioned throughput.
Write throughput.

Size of item x writes per second
   $0.0065 for 10 write units
Consistent writes.

        Atomic increment and decrement.

Optimistic concurrency control: conditional writes.
Transactions.

    Item level transactions only.

Puts, updates and deletes are ACID.
Strong or eventual consistency


 Read throughput.
Strong or eventual consistency


           Read throughput.


Provisioned units = size of item x reads per second

          $0.0065 per hour for 50 units
Strong or eventual consistency


           Read throughput.

Provisioned units = size of item x reads per second
                                   2
          $0.0065 per hour for 100 units
Strong or eventual consistency


 Read throughput.


  Same latency expectations.

 Mix and match at ‘read time’.
Customer story
Royal Opera House
Royal Opera House
     Rob Greig
       CTO
      @rob_greig
Strategy
Innovation using
open data and
collaborative working
       Web 3.0?
>600 pages
            Inconsistent structure
…and this doesn’t include microsites
Manual interlinking
Poor discoverability
Coherent and consistent linking
      throughout the complete
           production lifecycle
iPad
Open Data
Customer
 Service
DynamoDB
Provisioned throughput is
managed by DynamoDB.
Data is partitioned and
managed by DynamoDB.
Reserved capacity.


Up to 53% for 1 year reservation.
Up to 76% for 3 year reservation.
Authentication.

   Session based to minimize latency.
Uses the Amazon Security Token Service.
        Handled by AWS SDKs.
          Integrates with IAM.
Monitoring.


             CloudWatch metrics:
latency, consumed read and write throughput,
             errors and throttling.
Libraries, mappers and mocks.

  ColdFusion, Django, Erlang, Java, .Net,
     Node.js, Perl, PHP, Python, Ruby

         http://j.mp/dynamodb-libs
Data Modeling
date = 2012-05-16-
id = 100        09-00-10        total = 25.00


           date = 2012-05-15-
id = 101        15-00-11        total = 35.00


           date = 2012-05-16-
id = 101        12-00-10        total = 100.00
Table

           date = 2012-05-16-
id = 100        09-00-10        total = 25.00


           date = 2012-05-15-
id = 101        15-00-11        total = 35.00


           date = 2012-05-16-
id = 101        12-00-10        total = 100.00
date = 2012-05-16-
id = 100        09-00-10        total = 25.00
                                                 Item


           date = 2012-05-15-
id = 101        15-00-11        total = 35.00


           date = 2012-05-16-
id = 101        12-00-10        total = 100.00
date = 2012-05-16-
id = 100        09-00-10         total = 25.00
                                Attribute


           date = 2012-05-15-
id = 101        15-00-11         total = 35.00


           date = 2012-05-16-
id = 101        12-00-10        total = 100.00
Where is the schema?

Tables do not require a formal schema.
  Items are an arbitrarily sized hash.
Indexing.

Items are indexed by primary and secondary keys.
        Primary keys can be composite.
    Secondary keys index on other attributes.
ID                Date                 Total




id = 100   date = 2012-05-16-09-00-10   total = 25.00


id = 101   date = 2012-05-15-15-00-11   total = 35.00


id = 101   date = 2012-05-16-12-00-10   total = 100.00


id = 102   date = 2012-03-20-18-23-10   total = 20.00


id = 102   date = 2012-03-20-18-23-10   total = 120.00
Hash key


   ID                Date                 Total




id = 100   date = 2012-05-16-09-00-10   total = 25.00


id = 101   date = 2012-05-15-15-00-11   total = 35.00


id = 101   date = 2012-05-16-12-00-10   total = 100.00


id = 102   date = 2012-03-20-18-23-10   total = 20.00


id = 102   date = 2012-03-20-18-23-10   total = 120.00
Hash key                       Range key


   ID                              Date               Total


           Composite primary key


id = 100               date = 2012-05-16-09-00-10   total = 25.00


id = 101               date = 2012-05-15-15-00-11   total = 35.00


id = 101               date = 2012-05-16-12-00-10   total = 100.00


id = 102               date = 2012-03-20-18-23-10   total = 20.00


id = 102               date = 2012-03-20-18-23-10   total = 120.00
Hash key          Range key             Secondary range key


   ID                Date                      Total




id = 100   date = 2012-05-16-09-00-10        total = 25.00


id = 101   date = 2012-05-15-15-00-11        total = 35.00


id = 101   date = 2012-05-16-12-00-10       total = 100.00


id = 102   date = 2012-03-20-18-23-10        total = 20.00


id = 102   date = 2012-03-20-18-23-10       total = 120.00
Programming DynamoDB.

  Small but perfectly formed API.
CreateTable           PutItem

UpdateTable           GetItem

DeleteTable        UpdateItem

DescribeTable       DeleteItem

ListTables       BatchGetItem

Query           BatchWriteItem

Scan
CreateTable           PutItem

UpdateTable           GetItem

DeleteTable        UpdateItem

DescribeTable       DeleteItem

ListTables       BatchGetItem

Query           BatchWriteItem

Scan
CreateTable           PutItem

UpdateTable           GetItem

DeleteTable        UpdateItem

DescribeTable       DeleteItem

ListTables       BatchGetItem

Query           BatchWriteItem

Scan
Conditional updates.

PutItem, UpdateItem, DeleteItem can take
     optional conditions for operation.

UpdateItem performs atomic increments.
One API call, multiple items

       BatchGet returns multiple items by key.
BatchWrite performs up to 25 put or delete operations.
    Throughput is measured by IO, not API calls.
CreateTable           PutItem

UpdateTable           GetItem

DeleteTable        UpdateItem

DescribeTable       DeleteItem

ListTables       BatchGetItem

Query           BatchWriteItem

Scan
Query vs Scan

Query for Composite Key queries.
Scan for full table scans, exports.

 Both support pages and limits.
Maximum response is 1Mb in size.
Query patterns

   Retrieve all items by hash key.

        Range key conditions:
==, <, >, >=, <=, begins with, between.

  Counts. Top and bottom n values.
         Paged responses.
EXAMPLE 1:




Mapping relationships.
Players
 user_id =   location =    joined =
   mza       Cambridge    2011-07-04
 user_id =   location =    joined =
  jeffbarr     Seattle    2012-01-20
 user_id =   location =    joined =
  werner     Worldwide    2011-05-15
Players
 user_id =   location =     joined =
   mza       Cambridge     2011-07-04
 user_id =   location =     joined =
  jeffbarr     Seattle     2012-01-20
 user_id =   location =     joined =
  werner     Worldwide     2011-05-15


Scores
 user_id =    game =        score =
   mza       angry-birds    11,000
 user_id =    game =        score =
   mza         tetris      1,223,000
 user_id =   location =     score =
  werner     bejewelled     55,000
Players
 user_id =   location =     joined =
   mza       Cambridge     2011-07-04
 user_id =   location =     joined =
  jeffbarr     Seattle     2012-01-20
 user_id =   location =     joined =
  werner     Worldwide     2011-05-15


Scores                                  Leader boards
 user_id =    game =        score =       game =        score =    user_id =
   mza       angry-birds    11,000       angry-birds    11,000       mza
 user_id =    game =        score =       game =        score =    user_id =
   mza         tetris      1,223,000       tetris      1,223,000     mza
 user_id =   location =     score =       game =        score =    user_id =
  werner     bejewelled     55,000         tetris      9,000,000    jeffbarr
Players
 user_id =   location =     joined =
   mza       Cambridge     2011-07-04
 user_id =   location =     joined =
                                                Query for scores
  jeffbarr     Seattle     2012-01-20               by user
 user_id =   location =     joined =
  werner     Worldwide     2011-05-15


Scores                                  Leader boards
 user_id =    game =        score =       game =        score =    user_id =
   mza       angry-birds    11,000       angry-birds    11,000       mza
 user_id =    game =        score =       game =        score =    user_id =
   mza         tetris      1,223,000       tetris      1,223,000     mza
 user_id =   location =     score =       game =        score =    user_id =
  werner     bejewelled     55,000         tetris      9,000,000    jeffbarr
Players
 user_id =   location =     joined =
   mza       Cambridge     2011-07-04
 user_id =   location =     joined =         High scores by game
  jeffbarr     Seattle     2012-01-20
 user_id =   location =     joined =
  werner     Worldwide     2011-05-15


Scores                                  Leader boards
 user_id =    game =        score =       game =        score =    user_id =
   mza       angry-birds    11,000       angry-birds    11,000       mza
 user_id =    game =        score =       game =        score =    user_id =
   mza         tetris      1,223,000       tetris      1,223,000     mza
 user_id =   location =     score =       game =        score =    user_id =
  werner     bejewelled     55,000         tetris      9,000,000    jeffbarr
EXAMPLE 2:




Storing large items.
Unlimited storage.

Unlimited attributes per item.
 Unlimited items per table.

 Maximum of 64k per item.
Split across items.


                                        message =
message_id = 1          part = 1
                                        <first 64k>

                                        message =
message_id = 1          part = 2
                                       <second 64k>

                                          joined =
message_id = 1          part = 3
                                        <third 64k>
Store a pointer to S3.


                                 message =
message_id = 1
                        http://s3.amazonaws.com...

                                 message =
message_id = 2
                        http://s3.amazonaws.com...

                                 message =
message_id = 3
                        http://s3.amazonaws.com...
EXAMPLE 3:




Time series data
April                Hot and cold tables.
        event_id =          timestamp =       key =
          1000          2013-04-16-09-59-01   value
        event_id =          timestamp =       key =
          1001          2013-04-16-09-59-02   value
        event_id =          timestamp =       key =
          1002          2013-04-16-09-59-02   value

March
        event_id =          timestamp =       key =
          1000          2013-03-01-09-59-01   value
        event_id =          timestamp =       key =
          1001          2013-03-01-09-59-02   value
        event_id =          timestamp =       key =
          1002          2013-03-01-09-59-02   value
December   January   February   March   April
Archive data.

  Move old data to S3: lower cost.
    Still available for analytics.

Run queries across hot and cold data
      with Elastic MapReduce.
Partitioning
Uniform workload.

         Data stored across multiple partitions.
       Data is primarily distributed by primary key.

Provisioned throughput is divided evenly across partitions.
To achieve and maintain full
 provisioned throughput, spread
workload evenly across hash keys.
Non-Uniform workload.

Might be throttled, even at high levels of throughput.
BEST PRACTICE 1:




Distinct values for hash keys.
   Hash key elements should have a
    high number of distinct values.
Lots of users with unique user_id.
Workload well distributed across hash key.
user_id =        first_name =     last_name =
  mza                 Matt            Wood
user_id =        first_name =     last_name =
 jeffbarr              Jeff           Barr
user_id =        first_name =     last_name =
 werner              Werner          Vogels
user_id =        first_name =     last_name =
 simone             Simone          Brunozzi

   ...               ...              ...
BEST PRACTICE 2:




Avoid limited hash key values.
    Hash key elements should have a
     high number of distinct values.
Small number of status codes.
Unevenly, non-uniform workload.

status =                   date =
  200                2012-04-01-00-00-01
status =                   date =
  404                2012-04-01-00-00-01
 status                    date =
  404                2012-04-01-00-00-01
status =                   date =
  404                2012-04-01-00-00-01
BEST PRACTICE 3:




Model for even distribution.
Access by hash key value should be evenly
     distributed across the dataset.
Large number of devices.
Small number which are much more popular than others.
           Workload unevenly distributed.
            mobile_id =          access_date =
               100            2012-04-01-00-00-01
            mobile_id =          access_date =
               100            2012-04-01-00-00-02
            mobile_id =          access_date =
               100            2012-04-01-00-00-03
            mobile_id =          access_date =
               100            2012-04-01-00-00-04

                ...                   ...
Sample access pattern.
Workload randomized by hash key.

  mobile_id =          access_date =
    100.1           2012-04-01-00-00-01
  mobile_id =          access_date =
    100.2           2012-04-01-00-00-02
  mobile_id =          access_date =
    100.3           2012-04-01-00-00-03
  mobile_id =          access_date =
    100.4           2012-04-01-00-00-04

      ...                   ...
Reporting & Analytics
Seamless scale.


Scalable methods for data processing.
Scalable methods for backup/restore.
Amazon Elastic MapReduce.

    Managed Hadoop service for
     data-intensive workflows.

       aws.amazon.com/emr
create external table items_db
 (id string, votes bigint, views bigint) stored by
 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
  tblproperties
 ("dynamodb.table.name" = "items",
  "dynamodb.column.mapping" =
  "id:id,votes:votes,views:views");
select id, likes, views
from items_db
order by views desc;
Summary
 1. Getting started

 2. Customer story: Royal Opera House

 3. Data modeling

 4. Partitioning

 5. Reporting & Analytics
Free tier.
aws.amazon.com/dynamodb
Thank you!
philipfs@amazon.co.uk

More Related Content

What's hot

PyCon Siberia 2016. Не доверяйте тестам!
PyCon Siberia 2016. Не доверяйте тестам!PyCon Siberia 2016. Не доверяйте тестам!
PyCon Siberia 2016. Не доверяйте тестам!Ivan Tsyganov
 
MongoDB World 2019: Tips and Tricks++ for Querying and Indexing MongoDB
MongoDB World 2019: Tips and Tricks++ for Querying and Indexing MongoDBMongoDB World 2019: Tips and Tricks++ for Querying and Indexing MongoDB
MongoDB World 2019: Tips and Tricks++ for Querying and Indexing MongoDBMongoDB
 
Apache Solr Search Mastery
Apache Solr Search MasteryApache Solr Search Mastery
Apache Solr Search MasteryAcquia
 
MongoDB .local Houston 2019: Using Client Side Encryption in MongoDB 4.2
MongoDB .local Houston 2019: Using Client Side Encryption in MongoDB 4.2MongoDB .local Houston 2019: Using Client Side Encryption in MongoDB 4.2
MongoDB .local Houston 2019: Using Client Side Encryption in MongoDB 4.2MongoDB
 
Mysql query optimization
Mysql query optimizationMysql query optimization
Mysql query optimizationBaohua Cai
 
Dig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup CairoDig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup CairoMohamed Mosaad
 
The Ring programming language version 1.10 book - Part 54 of 212
The Ring programming language version 1.10 book - Part 54 of 212The Ring programming language version 1.10 book - Part 54 of 212
The Ring programming language version 1.10 book - Part 54 of 212Mahmoud Samir Fayed
 
Match II (armand)
Match II (armand)Match II (armand)
Match II (armand)Eng. QaSeMy
 
Ipaddressingandsubnettingworkbookv1 2
Ipaddressingandsubnettingworkbookv1 2Ipaddressingandsubnettingworkbookv1 2
Ipaddressingandsubnettingworkbookv1 2isc2008
 
Javascript & jQuery: A pragmatic introduction
Javascript & jQuery: A pragmatic introductionJavascript & jQuery: A pragmatic introduction
Javascript & jQuery: A pragmatic introductionIban Martinez
 
The Ring programming language version 1.6 book - Part 46 of 189
The Ring programming language version 1.6 book - Part 46 of 189The Ring programming language version 1.6 book - Part 46 of 189
The Ring programming language version 1.6 book - Part 46 of 189Mahmoud Samir Fayed
 

What's hot (13)

PyCon Siberia 2016. Не доверяйте тестам!
PyCon Siberia 2016. Не доверяйте тестам!PyCon Siberia 2016. Не доверяйте тестам!
PyCon Siberia 2016. Не доверяйте тестам!
 
MongoDB World 2019: Tips and Tricks++ for Querying and Indexing MongoDB
MongoDB World 2019: Tips and Tricks++ for Querying and Indexing MongoDBMongoDB World 2019: Tips and Tricks++ for Querying and Indexing MongoDB
MongoDB World 2019: Tips and Tricks++ for Querying and Indexing MongoDB
 
Apache Solr Search Mastery
Apache Solr Search MasteryApache Solr Search Mastery
Apache Solr Search Mastery
 
Avoid Query Pitfalls
Avoid Query PitfallsAvoid Query Pitfalls
Avoid Query Pitfalls
 
MongoDB .local Houston 2019: Using Client Side Encryption in MongoDB 4.2
MongoDB .local Houston 2019: Using Client Side Encryption in MongoDB 4.2MongoDB .local Houston 2019: Using Client Side Encryption in MongoDB 4.2
MongoDB .local Houston 2019: Using Client Side Encryption in MongoDB 4.2
 
Mysql query optimization
Mysql query optimizationMysql query optimization
Mysql query optimization
 
CakePHP workshop
CakePHP workshopCakePHP workshop
CakePHP workshop
 
Dig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup CairoDig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup Cairo
 
The Ring programming language version 1.10 book - Part 54 of 212
The Ring programming language version 1.10 book - Part 54 of 212The Ring programming language version 1.10 book - Part 54 of 212
The Ring programming language version 1.10 book - Part 54 of 212
 
Match II (armand)
Match II (armand)Match II (armand)
Match II (armand)
 
Ipaddressingandsubnettingworkbookv1 2
Ipaddressingandsubnettingworkbookv1 2Ipaddressingandsubnettingworkbookv1 2
Ipaddressingandsubnettingworkbookv1 2
 
Javascript & jQuery: A pragmatic introduction
Javascript & jQuery: A pragmatic introductionJavascript & jQuery: A pragmatic introduction
Javascript & jQuery: A pragmatic introduction
 
The Ring programming language version 1.6 book - Part 46 of 189
The Ring programming language version 1.6 book - Part 46 of 189The Ring programming language version 1.6 book - Part 46 of 189
The Ring programming language version 1.6 book - Part 46 of 189
 

Viewers also liked

Portland Common Data Model (PCDM): Creating and Sharing Complex Digital Objects
Portland Common Data Model (PCDM): Creating and Sharing Complex Digital ObjectsPortland Common Data Model (PCDM): Creating and Sharing Complex Digital Objects
Portland Common Data Model (PCDM): Creating and Sharing Complex Digital ObjectsKaren Estlund
 
AWS Summit Auckland 2014 | Effective Security Response in the Cloud - Session...
AWS Summit Auckland 2014 | Effective Security Response in the Cloud - Session...AWS Summit Auckland 2014 | Effective Security Response in the Cloud - Session...
AWS Summit Auckland 2014 | Effective Security Response in the Cloud - Session...Amazon Web Services
 
Journey Through The Cloud Webinar Program - What is AWS?
Journey Through  The Cloud Webinar Program - What is AWS?Journey Through  The Cloud Webinar Program - What is AWS?
Journey Through The Cloud Webinar Program - What is AWS?Amazon Web Services
 
AWS Canberra WWPS Summit 2013 - Become an Innovation Enterprise with AWS
AWS Canberra WWPS Summit 2013 - Become an Innovation Enterprise with AWSAWS Canberra WWPS Summit 2013 - Become an Innovation Enterprise with AWS
AWS Canberra WWPS Summit 2013 - Become an Innovation Enterprise with AWSAmazon Web Services
 
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...Amazon Web Services
 
AWS Summit 2013 | Singapore - Your First Week with Amazon EC2
AWS Summit 2013 | Singapore - Your First Week with Amazon EC2AWS Summit 2013 | Singapore - Your First Week with Amazon EC2
AWS Summit 2013 | Singapore - Your First Week with Amazon EC2Amazon Web Services
 
AWSome Day Manila - Opening Keynote, Feb 25 2014
AWSome Day Manila - Opening Keynote, Feb 25 2014AWSome Day Manila - Opening Keynote, Feb 25 2014
AWSome Day Manila - Opening Keynote, Feb 25 2014Amazon Web Services
 
Delivering Search for Today's Local, Social, and Mobile Applications
Delivering Search for Today's Local, Social, and Mobile ApplicationsDelivering Search for Today's Local, Social, and Mobile Applications
Delivering Search for Today's Local, Social, and Mobile ApplicationsAmazon Web Services
 
AWS Enterprise Summit London 2013 - Bob Harris - Channel 4
AWS Enterprise Summit London 2013 - Bob Harris - Channel 4 AWS Enterprise Summit London 2013 - Bob Harris - Channel 4
AWS Enterprise Summit London 2013 - Bob Harris - Channel 4 Amazon Web Services
 
Content Management and Running your Website on AWS
Content Management and Running your Website on AWSContent Management and Running your Website on AWS
Content Management and Running your Website on AWSAmazon Web Services
 
COSCUP - Open Source Engines Providing Big Data in the Cloud, Markku Lepisto
COSCUP - Open Source Engines Providing Big Data in the Cloud, Markku LepistoCOSCUP - Open Source Engines Providing Big Data in the Cloud, Markku Lepisto
COSCUP - Open Source Engines Providing Big Data in the Cloud, Markku LepistoAmazon Web Services
 
AWS Summit Sydney 2014 | Continuous Integration and Deployment Best Practices...
AWS Summit Sydney 2014 | Continuous Integration and Deployment Best Practices...AWS Summit Sydney 2014 | Continuous Integration and Deployment Best Practices...
AWS Summit Sydney 2014 | Continuous Integration and Deployment Best Practices...Amazon Web Services
 
AWS Summit 2013 | Auckland - Technical Lessons on How to Do Backup and Disast...
AWS Summit 2013 | Auckland - Technical Lessons on How to Do Backup and Disast...AWS Summit 2013 | Auckland - Technical Lessons on How to Do Backup and Disast...
AWS Summit 2013 | Auckland - Technical Lessons on How to Do Backup and Disast...Amazon Web Services
 
AWS Summit 2013 | India - Web, Mobile and Social Apps on AWS, Kingsley Wood
AWS Summit 2013 | India - Web, Mobile and Social Apps on AWS, Kingsley WoodAWS Summit 2013 | India - Web, Mobile and Social Apps on AWS, Kingsley Wood
AWS Summit 2013 | India - Web, Mobile and Social Apps on AWS, Kingsley WoodAmazon Web Services
 
AWS APAC Webinar Series: How to Reduce Your Spend on AWS
AWS APAC Webinar Series: How to Reduce Your Spend on AWSAWS APAC Webinar Series: How to Reduce Your Spend on AWS
AWS APAC Webinar Series: How to Reduce Your Spend on AWSAmazon Web Services
 
Empowering Publishers - Hosting Provider Selection Process - May-15-2013
Empowering Publishers - Hosting Provider Selection Process - May-15-2013Empowering Publishers - Hosting Provider Selection Process - May-15-2013
Empowering Publishers - Hosting Provider Selection Process - May-15-2013Amazon Web Services
 
Scalable Media Workflows on the Cloud
Scalable Media Workflows on the Cloud Scalable Media Workflows on the Cloud
Scalable Media Workflows on the Cloud Amazon Web Services
 

Viewers also liked (20)

Under the Covers of DynamoDB
Under the Covers of DynamoDBUnder the Covers of DynamoDB
Under the Covers of DynamoDB
 
Portland Common Data Model (PCDM): Creating and Sharing Complex Digital Objects
Portland Common Data Model (PCDM): Creating and Sharing Complex Digital ObjectsPortland Common Data Model (PCDM): Creating and Sharing Complex Digital Objects
Portland Common Data Model (PCDM): Creating and Sharing Complex Digital Objects
 
AWS Summit Auckland 2014 | Effective Security Response in the Cloud - Session...
AWS Summit Auckland 2014 | Effective Security Response in the Cloud - Session...AWS Summit Auckland 2014 | Effective Security Response in the Cloud - Session...
AWS Summit Auckland 2014 | Effective Security Response in the Cloud - Session...
 
Journey Through The Cloud Webinar Program - What is AWS?
Journey Through  The Cloud Webinar Program - What is AWS?Journey Through  The Cloud Webinar Program - What is AWS?
Journey Through The Cloud Webinar Program - What is AWS?
 
AWS Canberra WWPS Summit 2013 - Become an Innovation Enterprise with AWS
AWS Canberra WWPS Summit 2013 - Become an Innovation Enterprise with AWSAWS Canberra WWPS Summit 2013 - Become an Innovation Enterprise with AWS
AWS Canberra WWPS Summit 2013 - Become an Innovation Enterprise with AWS
 
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...
 
AWS Summit 2013 | Singapore - Your First Week with Amazon EC2
AWS Summit 2013 | Singapore - Your First Week with Amazon EC2AWS Summit 2013 | Singapore - Your First Week with Amazon EC2
AWS Summit 2013 | Singapore - Your First Week with Amazon EC2
 
AWSome Day Manila - Opening Keynote, Feb 25 2014
AWSome Day Manila - Opening Keynote, Feb 25 2014AWSome Day Manila - Opening Keynote, Feb 25 2014
AWSome Day Manila - Opening Keynote, Feb 25 2014
 
Delivering Search for Today's Local, Social, and Mobile Applications
Delivering Search for Today's Local, Social, and Mobile ApplicationsDelivering Search for Today's Local, Social, and Mobile Applications
Delivering Search for Today's Local, Social, and Mobile Applications
 
AWS Enterprise Summit London 2013 - Bob Harris - Channel 4
AWS Enterprise Summit London 2013 - Bob Harris - Channel 4 AWS Enterprise Summit London 2013 - Bob Harris - Channel 4
AWS Enterprise Summit London 2013 - Bob Harris - Channel 4
 
Understanding Database Options
Understanding Database OptionsUnderstanding Database Options
Understanding Database Options
 
Getting started with AWS
Getting started with AWSGetting started with AWS
Getting started with AWS
 
Content Management and Running your Website on AWS
Content Management and Running your Website on AWSContent Management and Running your Website on AWS
Content Management and Running your Website on AWS
 
COSCUP - Open Source Engines Providing Big Data in the Cloud, Markku Lepisto
COSCUP - Open Source Engines Providing Big Data in the Cloud, Markku LepistoCOSCUP - Open Source Engines Providing Big Data in the Cloud, Markku Lepisto
COSCUP - Open Source Engines Providing Big Data in the Cloud, Markku Lepisto
 
AWS Summit Sydney 2014 | Continuous Integration and Deployment Best Practices...
AWS Summit Sydney 2014 | Continuous Integration and Deployment Best Practices...AWS Summit Sydney 2014 | Continuous Integration and Deployment Best Practices...
AWS Summit Sydney 2014 | Continuous Integration and Deployment Best Practices...
 
AWS Summit 2013 | Auckland - Technical Lessons on How to Do Backup and Disast...
AWS Summit 2013 | Auckland - Technical Lessons on How to Do Backup and Disast...AWS Summit 2013 | Auckland - Technical Lessons on How to Do Backup and Disast...
AWS Summit 2013 | Auckland - Technical Lessons on How to Do Backup and Disast...
 
AWS Summit 2013 | India - Web, Mobile and Social Apps on AWS, Kingsley Wood
AWS Summit 2013 | India - Web, Mobile and Social Apps on AWS, Kingsley WoodAWS Summit 2013 | India - Web, Mobile and Social Apps on AWS, Kingsley Wood
AWS Summit 2013 | India - Web, Mobile and Social Apps on AWS, Kingsley Wood
 
AWS APAC Webinar Series: How to Reduce Your Spend on AWS
AWS APAC Webinar Series: How to Reduce Your Spend on AWSAWS APAC Webinar Series: How to Reduce Your Spend on AWS
AWS APAC Webinar Series: How to Reduce Your Spend on AWS
 
Empowering Publishers - Hosting Provider Selection Process - May-15-2013
Empowering Publishers - Hosting Provider Selection Process - May-15-2013Empowering Publishers - Hosting Provider Selection Process - May-15-2013
Empowering Publishers - Hosting Provider Selection Process - May-15-2013
 
Scalable Media Workflows on the Cloud
Scalable Media Workflows on the Cloud Scalable Media Workflows on the Cloud
Scalable Media Workflows on the Cloud
 

Similar to Data & Analytics - Session 3 - Under the Covers with Amazon DynamoDB

Building Applications with DynamoDB
Building Applications with DynamoDBBuilding Applications with DynamoDB
Building Applications with DynamoDBAmazon Web Services
 
AWS Under the covers with Amazon DynamoDB IP Expo 2013
AWS Under the covers with Amazon DynamoDB IP Expo 2013AWS Under the covers with Amazon DynamoDB IP Expo 2013
AWS Under the covers with Amazon DynamoDB IP Expo 2013Amazon Web Services
 
Beyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeBeyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeWim Godden
 
Beyond php it's not (just) about the code
Beyond php   it's not (just) about the codeBeyond php   it's not (just) about the code
Beyond php it's not (just) about the codeWim Godden
 
Beyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeBeyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeWim Godden
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeWim Godden
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeWim Godden
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeWim Godden
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeWim Godden
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeWim Godden
 
Beyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeBeyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeWim Godden
 
Relational Database to Apache Spark (and sometimes back again)
Relational Database to Apache Spark (and sometimes back again)Relational Database to Apache Spark (and sometimes back again)
Relational Database to Apache Spark (and sometimes back again)Ed Thewlis
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeWim Godden
 
Staying railsy - while scaling complexity or Ruby on Rails in Enterprise Soft...
Staying railsy - while scaling complexity or Ruby on Rails in Enterprise Soft...Staying railsy - while scaling complexity or Ruby on Rails in Enterprise Soft...
Staying railsy - while scaling complexity or Ruby on Rails in Enterprise Soft...Coupa Software
 
Rails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Rails-like JavaScript Using CoffeeScript, Backbone.js and JasmineRails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Rails-like JavaScript Using CoffeeScript, Backbone.js and JasmineRaimonds Simanovskis
 
Data Mining Open Ap Is
Data Mining Open Ap IsData Mining Open Ap Is
Data Mining Open Ap Isoscon2007
 
Intro to-rails-webperf
Intro to-rails-webperfIntro to-rails-webperf
Intro to-rails-webperfNew Relic
 
Using Apache Solr
Using Apache SolrUsing Apache Solr
Using Apache Solrpittaya
 

Similar to Data & Analytics - Session 3 - Under the Covers with Amazon DynamoDB (20)

Building Applications with DynamoDB
Building Applications with DynamoDBBuilding Applications with DynamoDB
Building Applications with DynamoDB
 
AWS Under the covers with Amazon DynamoDB IP Expo 2013
AWS Under the covers with Amazon DynamoDB IP Expo 2013AWS Under the covers with Amazon DynamoDB IP Expo 2013
AWS Under the covers with Amazon DynamoDB IP Expo 2013
 
Beyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeBeyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the code
 
Beyond php it's not (just) about the code
Beyond php   it's not (just) about the codeBeyond php   it's not (just) about the code
Beyond php it's not (just) about the code
 
Beyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeBeyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the code
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
DynamoDB Deep Dive
DynamoDB Deep DiveDynamoDB Deep Dive
DynamoDB Deep Dive
 
Beyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeBeyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the code
 
Relational Database to Apache Spark (and sometimes back again)
Relational Database to Apache Spark (and sometimes back again)Relational Database to Apache Spark (and sometimes back again)
Relational Database to Apache Spark (and sometimes back again)
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Staying railsy - while scaling complexity or Ruby on Rails in Enterprise Soft...
Staying railsy - while scaling complexity or Ruby on Rails in Enterprise Soft...Staying railsy - while scaling complexity or Ruby on Rails in Enterprise Soft...
Staying railsy - while scaling complexity or Ruby on Rails in Enterprise Soft...
 
SOLID Ruby, SOLID Rails
SOLID Ruby, SOLID RailsSOLID Ruby, SOLID Rails
SOLID Ruby, SOLID Rails
 
Rails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Rails-like JavaScript Using CoffeeScript, Backbone.js and JasmineRails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Rails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
 
Data Mining Open Ap Is
Data Mining Open Ap IsData Mining Open Ap Is
Data Mining Open Ap Is
 
Intro to-rails-webperf
Intro to-rails-webperfIntro to-rails-webperf
Intro to-rails-webperf
 
Using Apache Solr
Using Apache SolrUsing Apache Solr
Using Apache Solr
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Recently uploaded

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 

Recently uploaded (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 

Data & Analytics - Session 3 - Under the Covers with Amazon DynamoDB

  • 1. Under the Covers of DynamoDB Philip Fitzsimons Manager, Solution Architecture
  • 2. Overview 1. Getting started 2. Customer story: Royal Opera House 3. Data modeling 4. Partitioning 5. Reporting & Analytics
  • 4. DynamoDB is a managed NoSQL database service. Store and retrieve any amount of data. Serve any level of request traffic.
  • 6. Consistent, predictable performance. Single digit millisecond latency. Backed on solid-state drives.
  • 7. Flexible data model. Key/attribute pairs. No schema required. Easy to create. Easy to adjust.
  • 8. Seamless scalability. No table size limits. Unlimited storage. No downtime.
  • 9. Durable. Consistent, disk only writes. Replication across data centers and availability zones.
  • 12. Two decisions + three clicks = ready for use
  • 13. Level of throughput Primary keys Two decisions + three clicks = ready for use
  • 14. Level of throughput Primary keys Two decisions + three clicks = ready for use
  • 15. Provisioned throughput. Reserve IOPS for reads and writes. Scale up for down at any time.
  • 16. Pay per capacity unit. Priced per hour of provisioned throughput.
  • 17. Write throughput. Size of item x writes per second $0.0065 for 10 write units
  • 18. Consistent writes. Atomic increment and decrement. Optimistic concurrency control: conditional writes.
  • 19. Transactions. Item level transactions only. Puts, updates and deletes are ACID.
  • 20. Strong or eventual consistency Read throughput.
  • 21. Strong or eventual consistency Read throughput. Provisioned units = size of item x reads per second $0.0065 per hour for 50 units
  • 22. Strong or eventual consistency Read throughput. Provisioned units = size of item x reads per second 2 $0.0065 per hour for 100 units
  • 23. Strong or eventual consistency Read throughput. Same latency expectations. Mix and match at ‘read time’.
  • 25. Royal Opera House Rob Greig CTO @rob_greig
  • 26. Strategy Innovation using open data and collaborative working Web 3.0?
  • 27. >600 pages Inconsistent structure …and this doesn’t include microsites
  • 29. Coherent and consistent linking throughout the complete production lifecycle
  • 30. iPad
  • 32.
  • 33.
  • 35.
  • 37.
  • 38.
  • 39.
  • 40.
  • 42. Data is partitioned and managed by DynamoDB.
  • 43. Reserved capacity. Up to 53% for 1 year reservation. Up to 76% for 3 year reservation.
  • 44. Authentication. Session based to minimize latency. Uses the Amazon Security Token Service. Handled by AWS SDKs. Integrates with IAM.
  • 45. Monitoring. CloudWatch metrics: latency, consumed read and write throughput, errors and throttling.
  • 46. Libraries, mappers and mocks. ColdFusion, Django, Erlang, Java, .Net, Node.js, Perl, PHP, Python, Ruby http://j.mp/dynamodb-libs
  • 48. date = 2012-05-16- id = 100 09-00-10 total = 25.00 date = 2012-05-15- id = 101 15-00-11 total = 35.00 date = 2012-05-16- id = 101 12-00-10 total = 100.00
  • 49. Table date = 2012-05-16- id = 100 09-00-10 total = 25.00 date = 2012-05-15- id = 101 15-00-11 total = 35.00 date = 2012-05-16- id = 101 12-00-10 total = 100.00
  • 50. date = 2012-05-16- id = 100 09-00-10 total = 25.00 Item date = 2012-05-15- id = 101 15-00-11 total = 35.00 date = 2012-05-16- id = 101 12-00-10 total = 100.00
  • 51. date = 2012-05-16- id = 100 09-00-10 total = 25.00 Attribute date = 2012-05-15- id = 101 15-00-11 total = 35.00 date = 2012-05-16- id = 101 12-00-10 total = 100.00
  • 52. Where is the schema? Tables do not require a formal schema. Items are an arbitrarily sized hash.
  • 53. Indexing. Items are indexed by primary and secondary keys. Primary keys can be composite. Secondary keys index on other attributes.
  • 54. ID Date Total id = 100 date = 2012-05-16-09-00-10 total = 25.00 id = 101 date = 2012-05-15-15-00-11 total = 35.00 id = 101 date = 2012-05-16-12-00-10 total = 100.00 id = 102 date = 2012-03-20-18-23-10 total = 20.00 id = 102 date = 2012-03-20-18-23-10 total = 120.00
  • 55. Hash key ID Date Total id = 100 date = 2012-05-16-09-00-10 total = 25.00 id = 101 date = 2012-05-15-15-00-11 total = 35.00 id = 101 date = 2012-05-16-12-00-10 total = 100.00 id = 102 date = 2012-03-20-18-23-10 total = 20.00 id = 102 date = 2012-03-20-18-23-10 total = 120.00
  • 56. Hash key Range key ID Date Total Composite primary key id = 100 date = 2012-05-16-09-00-10 total = 25.00 id = 101 date = 2012-05-15-15-00-11 total = 35.00 id = 101 date = 2012-05-16-12-00-10 total = 100.00 id = 102 date = 2012-03-20-18-23-10 total = 20.00 id = 102 date = 2012-03-20-18-23-10 total = 120.00
  • 57. Hash key Range key Secondary range key ID Date Total id = 100 date = 2012-05-16-09-00-10 total = 25.00 id = 101 date = 2012-05-15-15-00-11 total = 35.00 id = 101 date = 2012-05-16-12-00-10 total = 100.00 id = 102 date = 2012-03-20-18-23-10 total = 20.00 id = 102 date = 2012-03-20-18-23-10 total = 120.00
  • 58. Programming DynamoDB. Small but perfectly formed API.
  • 59. CreateTable PutItem UpdateTable GetItem DeleteTable UpdateItem DescribeTable DeleteItem ListTables BatchGetItem Query BatchWriteItem Scan
  • 60. CreateTable PutItem UpdateTable GetItem DeleteTable UpdateItem DescribeTable DeleteItem ListTables BatchGetItem Query BatchWriteItem Scan
  • 61. CreateTable PutItem UpdateTable GetItem DeleteTable UpdateItem DescribeTable DeleteItem ListTables BatchGetItem Query BatchWriteItem Scan
  • 62. Conditional updates. PutItem, UpdateItem, DeleteItem can take optional conditions for operation. UpdateItem performs atomic increments.
  • 63. One API call, multiple items BatchGet returns multiple items by key. BatchWrite performs up to 25 put or delete operations. Throughput is measured by IO, not API calls.
  • 64. CreateTable PutItem UpdateTable GetItem DeleteTable UpdateItem DescribeTable DeleteItem ListTables BatchGetItem Query BatchWriteItem Scan
  • 65. Query vs Scan Query for Composite Key queries. Scan for full table scans, exports. Both support pages and limits. Maximum response is 1Mb in size.
  • 66. Query patterns Retrieve all items by hash key. Range key conditions: ==, <, >, >=, <=, begins with, between. Counts. Top and bottom n values. Paged responses.
  • 68. Players user_id = location = joined = mza Cambridge 2011-07-04 user_id = location = joined = jeffbarr Seattle 2012-01-20 user_id = location = joined = werner Worldwide 2011-05-15
  • 69. Players user_id = location = joined = mza Cambridge 2011-07-04 user_id = location = joined = jeffbarr Seattle 2012-01-20 user_id = location = joined = werner Worldwide 2011-05-15 Scores user_id = game = score = mza angry-birds 11,000 user_id = game = score = mza tetris 1,223,000 user_id = location = score = werner bejewelled 55,000
  • 70. Players user_id = location = joined = mza Cambridge 2011-07-04 user_id = location = joined = jeffbarr Seattle 2012-01-20 user_id = location = joined = werner Worldwide 2011-05-15 Scores Leader boards user_id = game = score = game = score = user_id = mza angry-birds 11,000 angry-birds 11,000 mza user_id = game = score = game = score = user_id = mza tetris 1,223,000 tetris 1,223,000 mza user_id = location = score = game = score = user_id = werner bejewelled 55,000 tetris 9,000,000 jeffbarr
  • 71. Players user_id = location = joined = mza Cambridge 2011-07-04 user_id = location = joined = Query for scores jeffbarr Seattle 2012-01-20 by user user_id = location = joined = werner Worldwide 2011-05-15 Scores Leader boards user_id = game = score = game = score = user_id = mza angry-birds 11,000 angry-birds 11,000 mza user_id = game = score = game = score = user_id = mza tetris 1,223,000 tetris 1,223,000 mza user_id = location = score = game = score = user_id = werner bejewelled 55,000 tetris 9,000,000 jeffbarr
  • 72. Players user_id = location = joined = mza Cambridge 2011-07-04 user_id = location = joined = High scores by game jeffbarr Seattle 2012-01-20 user_id = location = joined = werner Worldwide 2011-05-15 Scores Leader boards user_id = game = score = game = score = user_id = mza angry-birds 11,000 angry-birds 11,000 mza user_id = game = score = game = score = user_id = mza tetris 1,223,000 tetris 1,223,000 mza user_id = location = score = game = score = user_id = werner bejewelled 55,000 tetris 9,000,000 jeffbarr
  • 74. Unlimited storage. Unlimited attributes per item. Unlimited items per table. Maximum of 64k per item.
  • 75. Split across items. message = message_id = 1 part = 1 <first 64k> message = message_id = 1 part = 2 <second 64k> joined = message_id = 1 part = 3 <third 64k>
  • 76. Store a pointer to S3. message = message_id = 1 http://s3.amazonaws.com... message = message_id = 2 http://s3.amazonaws.com... message = message_id = 3 http://s3.amazonaws.com...
  • 78. April Hot and cold tables. event_id = timestamp = key = 1000 2013-04-16-09-59-01 value event_id = timestamp = key = 1001 2013-04-16-09-59-02 value event_id = timestamp = key = 1002 2013-04-16-09-59-02 value March event_id = timestamp = key = 1000 2013-03-01-09-59-01 value event_id = timestamp = key = 1001 2013-03-01-09-59-02 value event_id = timestamp = key = 1002 2013-03-01-09-59-02 value
  • 79. December January February March April
  • 80. Archive data. Move old data to S3: lower cost. Still available for analytics. Run queries across hot and cold data with Elastic MapReduce.
  • 82. Uniform workload. Data stored across multiple partitions. Data is primarily distributed by primary key. Provisioned throughput is divided evenly across partitions.
  • 83. To achieve and maintain full provisioned throughput, spread workload evenly across hash keys.
  • 84. Non-Uniform workload. Might be throttled, even at high levels of throughput.
  • 85. BEST PRACTICE 1: Distinct values for hash keys. Hash key elements should have a high number of distinct values.
  • 86. Lots of users with unique user_id. Workload well distributed across hash key. user_id = first_name = last_name = mza Matt Wood user_id = first_name = last_name = jeffbarr Jeff Barr user_id = first_name = last_name = werner Werner Vogels user_id = first_name = last_name = simone Simone Brunozzi ... ... ...
  • 87. BEST PRACTICE 2: Avoid limited hash key values. Hash key elements should have a high number of distinct values.
  • 88. Small number of status codes. Unevenly, non-uniform workload. status = date = 200 2012-04-01-00-00-01 status = date = 404 2012-04-01-00-00-01 status date = 404 2012-04-01-00-00-01 status = date = 404 2012-04-01-00-00-01
  • 89. BEST PRACTICE 3: Model for even distribution. Access by hash key value should be evenly distributed across the dataset.
  • 90. Large number of devices. Small number which are much more popular than others. Workload unevenly distributed. mobile_id = access_date = 100 2012-04-01-00-00-01 mobile_id = access_date = 100 2012-04-01-00-00-02 mobile_id = access_date = 100 2012-04-01-00-00-03 mobile_id = access_date = 100 2012-04-01-00-00-04 ... ...
  • 91. Sample access pattern. Workload randomized by hash key. mobile_id = access_date = 100.1 2012-04-01-00-00-01 mobile_id = access_date = 100.2 2012-04-01-00-00-02 mobile_id = access_date = 100.3 2012-04-01-00-00-03 mobile_id = access_date = 100.4 2012-04-01-00-00-04 ... ...
  • 93. Seamless scale. Scalable methods for data processing. Scalable methods for backup/restore.
  • 94. Amazon Elastic MapReduce. Managed Hadoop service for data-intensive workflows. aws.amazon.com/emr
  • 95. create external table items_db (id string, votes bigint, views bigint) stored by 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' tblproperties ("dynamodb.table.name" = "items", "dynamodb.column.mapping" = "id:id,votes:votes,views:views");
  • 96. select id, likes, views from items_db order by views desc;
  • 97. Summary 1. Getting started 2. Customer story: Royal Opera House 3. Data modeling 4. Partitioning 5. Reporting & Analytics