SlideShare ist ein Scribd-Unternehmen logo
1 von 40
¡Ay, caramba!

  Wrestle Your NoSQL
  Data with DynamoDB
 Je ff Dougl a s @je ff do n th em ic
 C lo udSp ok es C ommun it y Arch itec t
Rambling Talk Roadmap

Short NoSQL overview (thanks Max @ 10gen!)

Why NoSQL database are like Mexican Wrestlers

Amazon DynamoDB in depth

Amazon DynamoDB demo and code

CloudSpokes challenge submissions for “Build an
#Awesome Demo with Amazon DynamoDB”
Times they are a-changin’

    Cloud applications and
    APIs need to be fast,
    flexible and scalable.

    RDBMS typically do not
    scale well for certain data-intensive application.

    NoSQL is cloud friendly.
“NoSQL is a rebellion against the DBAs who prevent us from
                        doing shit.”
                          - James Governor, Gluecon 2012
Why is NoSQL #awesome?
Developed to manage large volumes of data that
do not necessarily follow a fixed schema

Great for heavy read/write workloads

Simple to setup, configure and administer

Distributed, fault tolerant architecture

Scale out not up

Specialized database for the right task
Key NoSQL differences

Do not use SQL as a query language

Dynamic & schema-less

Non-relational, no JOIN operations

No complex transactions

May not give full ACID guarantees; eventually
consistent instead. Performance and real-time
nature is more important than consistency.
NoSQL databases are
    “different”
NoSQL database types

Document store (MongoDB, CouchDB)
 A document-oriented database that stores, retrieves, and manages semi
 structured data including XML, YAML, JSON and binary (PDF, DOC)


Key-value store (Cassandra, Redis)
 Stores scheme-less data referenced by a simple key value


Graph database (Neo4j, FlockDB)
 Stores the relationship of data as a graph (social relations, network
 topologies)
How to choose?
With all of the different NoSQL database types, how
            do you choose the “best” one?
El Toro Más Macho
                    MongoDB
       Stores structured data as JSON-like
       documents.

       Ad hoc queries, indexing, master-slave
       replication, sharding, server-side JavaScript
       execution

       All the “cool kids” are using it.

       Node.js + MongoDB = WINNING!
Muy Guapo
              Couchbase
   JSON Document store

   Embedded CouchDB with caching,
   clustering and high-performance storage
   management components.

   JavaScript as its query language and
   HTTP for an API

   Serve HTML and JavaScript-based
   “CouchApps”
El Matador Misterio
                         Redis
        What exactly is redis? MAGIC!

        By definition, it’s an in-memory, key-value
        data store with optional durability.

        Data model includes list of string, sets of
        strings, sorted sets of strings & hashes.

        Awesome at doing set comparisons.
Comando Loco
              Apache Hadoop

    Fast, reliable analysis of both structured data
    and complex data.

    Derived from Google's MapReduce and File
    System (GFS) papers. Yahoo is one of the
    main contributors.

    Reliable data storage using the Hadoop
    Distributed File System (HDFS) and high-
    performance parallel data processing using
    MapReduce.
El Jefe Supremo
              Apache Cassandra
     Massively scalable key-value store initially
     developed by Facebook.

     BigTable data model (nested hashes) running
     on an Amazon Dynamo-like infrastructure.

     Has some RDBMS “feel” with column families
     that make it it a hybrid column/row store.

     No single point of failure, fault-tolerant multi
     data center replication, MapReduce support.

     CQL (Cassandra Query Language)
Introducing...
La Amazon DynamoDB
¡Hola DynamoDB

Amazon DynamoDB is a fast, fully managed key-value
database service that scales seamlessly with extremely
low latency and predictable performance.

   Store and retrieve any amount of data

   Serve any level of request traffic

   Hands off administration

   Pay for throughput and not storage
¡No! administración
No hardware or software provisioning, setup and
configuration, software patching, or partitioning data over
multiple instances and regions.

Specify the request throughput for your table and in the
background, Amazon handles the provisioning of resources to
meet the requested throughput rate.

Automatically partitions/re-partitions data and provisions
additional server capacity based upon table size & throughput.

Synchronously replicates data across multiple facilities in an
AWS Region giving you high availability and data durability.
Muy rápido

Consistent, predictable performance

Runs on a new solid state disk (SSD) architecture
for low-latency response times.

Read latencies average less than 5 milliseconds,
and write latencies average less than 10
milliseconds.
Muy Escalable

No table size limits (adiós SimpleDB?)

No downtime when scaling up or down

Unlimited storage

Automatically scale machine resources in
response to increases in database traffic without
the need of client-side partitioning.
Modelo de datos flexible

Flexible data model with familiar tables, items
and key-value pairs.

Schema-less document storage. Each item can
have different attributes.

Easy to create and modify documents. Simple
API.

No cross-table joins. Use composite keys to
model relationships.
Duradero

Consistent, disk-only writes

Atomic increment/decrement (w/single API call)

Optimistic concurrency control (aka conditional
writes & updates)

Item level transactions (even in bulk)

Automatic and synchronous replication across
data centers and availability zones.
Costos?

Pay for throughput and not storage.

Priced per hour of provisioned read/write
throughput

Scales up and down well with a free tier
Write throughput

Write throughput

Unit = size of item x writes/second

$0.01 per hour for 10 write units
Read throughput
Strongly consistent reads (mucho dinero)

Eventually consistent reads




       See Amazon’s site for read throughput pricing!
Other features

Integrates with Amazon Elastic MapReduce and
Hadoop.

Libraries, mappers and mocks for Django,
Erlang, Java, .NET, Node.js, Perl, PHP, Python &
Ruby.

Session based authentication using Amazon
Security Token Service

Monitoring via CloudWatch
DynamoDB Semantics

Tables, item & attributes

Items are indexed by primary key (single hash
and composite keys)

Items are a collection of attributes and attributes
have a key and value.

Unlimited number of attributes up to 64k total.
Simple API calls

 CreateTable       PutItem
UpdateTable        GetItem
 DeleteTable      UpdateItem
DescribeTable     DeleteItem
  ListTables

   Query          BatchGetItem
   Scan          BatchWriteItem
Kiva loan browser




http://kivabrowser.elasticbeanstalk.com
CRUD items
Connect to DynamoDB
New Loan
Show Loan
All/Filter Loans
CloudSpokes Challenge
Flickr on DynamoDB




 Wcheung (Canada) submitted a Grails application that caches Flickr photos in
Amazon DynamoDB. You can then search for cached feed entries by primary key
  (author + published date/time range) or by table scan. You can also “like” a
 photo, resulting in the atomic “like” counter for the item in DynamoDB getting
                                   incremented.

        http://screencast.com/t/MAVgm7xeqDpr
Posterity




Mbleigh (US) submitted a simple, barebones Twitter-esque service created in
Ruby using Sinatra. It is far from complete but uses a number of DynamoDB's
 key features including Hash/Range Keys and Atomic Set Push Operations.

  http://www.screencast.com/t/me8hW27MYs3x
DynamoDB Task Manager




Darthdeus (Czech Republic) wrote his app in Ruby using Sinatra. It uses a custom
ORM he wrote called DynamoRecord to access DynamoDB. His main idea was to
 get at least some of the ActiveRecord-ish API to DynamoDB using some basic
                                metaprogramming

 http://www.youtube.com/watch?v=9tOzaDPP39I
Simple Sur vey




  Peakpado (US) created an application using Ruby on Rails. For each table he
created a sophisticated hask/range key model class which resulted in an API very
                     similar to ActiveRecord for DynamoDB.

         http://screencast.com/t/ri1XkMxGcpnS
Data Sets for Mumbai




 Romin (India) developed an API that exposes data sets of Mumbai city in JSON
format. The solution uses Amazon DynamoDB for storing the data and a NodeJS
application that exposes the REST interface and talks to Amazon DynamoDB via
                           a backend Java application.
Thanks!

Jeff Douglas
CloudSpokes
Community Architect

@jeffdonthemic
jeff@cloudspokes.com



             http://www.cloudspokes.com
              http://blog.jeffdouglas.com

Weitere ähnliche Inhalte

Was ist angesagt?

Compare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDBCompare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDBAmar Das
 
Autoscale DynamoDB with Dynamic DynamoDB
Autoscale DynamoDB with Dynamic DynamoDBAutoscale DynamoDB with Dynamic DynamoDB
Autoscale DynamoDB with Dynamic DynamoDBSebastian Dahlgren
 
Application design for the cloud using AWS
Application design for the cloud using AWSApplication design for the cloud using AWS
Application design for the cloud using AWSJonathan Holloway
 
(SDD424) Simplifying Scalable Distributed Applications Using DynamoDB Streams...
(SDD424) Simplifying Scalable Distributed Applications Using DynamoDB Streams...(SDD424) Simplifying Scalable Distributed Applications Using DynamoDB Streams...
(SDD424) Simplifying Scalable Distributed Applications Using DynamoDB Streams...Amazon Web Services
 
AWS December 2015 Webinar Series - Design Patterns using Amazon DynamoDB
AWS December 2015 Webinar Series - Design Patterns using Amazon DynamoDBAWS December 2015 Webinar Series - Design Patterns using Amazon DynamoDB
AWS December 2015 Webinar Series - Design Patterns using Amazon DynamoDBAmazon Web Services
 
Data Warehousing with Amazon Redshift
Data Warehousing with Amazon RedshiftData Warehousing with Amazon Redshift
Data Warehousing with Amazon RedshiftAmazon Web Services
 
Apache MetaModel - unified access to all your data points
Apache MetaModel - unified access to all your data pointsApache MetaModel - unified access to all your data points
Apache MetaModel - unified access to all your data pointsKasper Sørensen
 
The other Apache Technologies your Big Data solution needs
The other Apache Technologies your Big Data solution needsThe other Apache Technologies your Big Data solution needs
The other Apache Technologies your Big Data solution needsgagravarr
 
Amazon RedShift - Ianni Vamvadelis
Amazon RedShift - Ianni VamvadelisAmazon RedShift - Ianni Vamvadelis
Amazon RedShift - Ianni Vamvadelishuguk
 
ArangoDB – A different approach to NoSQL
ArangoDB – A different approach to NoSQLArangoDB – A different approach to NoSQL
ArangoDB – A different approach to NoSQLArangoDB Database
 
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
 
Microsoft's Big Play for Big Data- Visual Studio Live! NY 2012
Microsoft's Big Play for Big Data- Visual Studio Live! NY 2012Microsoft's Big Play for Big Data- Visual Studio Live! NY 2012
Microsoft's Big Play for Big Data- Visual Studio Live! NY 2012Andrew Brust
 
Non Relational Databases
Non Relational DatabasesNon Relational Databases
Non Relational DatabasesChris Baglieri
 
Cloud Computing and the Microsoft Developer - A Down-to-Earth Analysis
Cloud Computing and the Microsoft Developer - A Down-to-Earth AnalysisCloud Computing and the Microsoft Developer - A Down-to-Earth Analysis
Cloud Computing and the Microsoft Developer - A Down-to-Earth AnalysisAndrew Brust
 

Was ist angesagt? (20)

Compare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDBCompare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDB
 
Autoscale DynamoDB with Dynamic DynamoDB
Autoscale DynamoDB with Dynamic DynamoDBAutoscale DynamoDB with Dynamic DynamoDB
Autoscale DynamoDB with Dynamic DynamoDB
 
Application design for the cloud using AWS
Application design for the cloud using AWSApplication design for the cloud using AWS
Application design for the cloud using AWS
 
(SDD424) Simplifying Scalable Distributed Applications Using DynamoDB Streams...
(SDD424) Simplifying Scalable Distributed Applications Using DynamoDB Streams...(SDD424) Simplifying Scalable Distributed Applications Using DynamoDB Streams...
(SDD424) Simplifying Scalable Distributed Applications Using DynamoDB Streams...
 
AWS December 2015 Webinar Series - Design Patterns using Amazon DynamoDB
AWS December 2015 Webinar Series - Design Patterns using Amazon DynamoDBAWS December 2015 Webinar Series - Design Patterns using Amazon DynamoDB
AWS December 2015 Webinar Series - Design Patterns using Amazon DynamoDB
 
Data Warehousing with Amazon Redshift
Data Warehousing with Amazon RedshiftData Warehousing with Amazon Redshift
Data Warehousing with Amazon Redshift
 
Apache MetaModel - unified access to all your data points
Apache MetaModel - unified access to all your data pointsApache MetaModel - unified access to all your data points
Apache MetaModel - unified access to all your data points
 
The other Apache Technologies your Big Data solution needs
The other Apache Technologies your Big Data solution needsThe other Apache Technologies your Big Data solution needs
The other Apache Technologies your Big Data solution needs
 
Introduction to Amazon Redshift
Introduction to Amazon RedshiftIntroduction to Amazon Redshift
Introduction to Amazon Redshift
 
Amazon RedShift - Ianni Vamvadelis
Amazon RedShift - Ianni VamvadelisAmazon RedShift - Ianni Vamvadelis
Amazon RedShift - Ianni Vamvadelis
 
Deep Dive on ArangoDB
Deep Dive on ArangoDBDeep Dive on ArangoDB
Deep Dive on ArangoDB
 
ArangoDB – A different approach to NoSQL
ArangoDB – A different approach to NoSQLArangoDB – A different approach to NoSQL
ArangoDB – A different approach to NoSQL
 
Introduction to Amazon DynamoDB
Introduction to Amazon DynamoDBIntroduction to Amazon DynamoDB
Introduction to Amazon DynamoDB
 
Redshift overview
Redshift overviewRedshift overview
Redshift overview
 
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...
 
BDA311 Introduction to AWS Glue
BDA311 Introduction to AWS GlueBDA311 Introduction to AWS Glue
BDA311 Introduction to AWS Glue
 
CouchDB
CouchDBCouchDB
CouchDB
 
Microsoft's Big Play for Big Data- Visual Studio Live! NY 2012
Microsoft's Big Play for Big Data- Visual Studio Live! NY 2012Microsoft's Big Play for Big Data- Visual Studio Live! NY 2012
Microsoft's Big Play for Big Data- Visual Studio Live! NY 2012
 
Non Relational Databases
Non Relational DatabasesNon Relational Databases
Non Relational Databases
 
Cloud Computing and the Microsoft Developer - A Down-to-Earth Analysis
Cloud Computing and the Microsoft Developer - A Down-to-Earth AnalysisCloud Computing and the Microsoft Developer - A Down-to-Earth Analysis
Cloud Computing and the Microsoft Developer - A Down-to-Earth Analysis
 

Ähnlich wie DynamoDB Gluecon 2012

Big data vahidamiri-tabriz-13960226-datastack.ir
Big data vahidamiri-tabriz-13960226-datastack.irBig data vahidamiri-tabriz-13960226-datastack.ir
Big data vahidamiri-tabriz-13960226-datastack.irdatastack
 
Front Range PHP NoSQL Databases
Front Range PHP NoSQL DatabasesFront Range PHP NoSQL Databases
Front Range PHP NoSQL DatabasesJon Meredith
 
JS App Architecture
JS App ArchitectureJS App Architecture
JS App ArchitectureCorey Butler
 
Big Data Goes Airborne. Propelling Your Big Data Initiative with Ironcluster ...
Big Data Goes Airborne. Propelling Your Big Data Initiative with Ironcluster ...Big Data Goes Airborne. Propelling Your Big Data Initiative with Ironcluster ...
Big Data Goes Airborne. Propelling Your Big Data Initiative with Ironcluster ...Precisely
 
Rolling With Riak
Rolling With RiakRolling With Riak
Rolling With RiakJohn Lynch
 
Getting Started with Big Data and HPC in the Cloud - August 2015
Getting Started with Big Data and HPC in the Cloud - August 2015Getting Started with Big Data and HPC in the Cloud - August 2015
Getting Started with Big Data and HPC in the Cloud - August 2015Amazon Web Services
 
Introduction to NoSql
Introduction to NoSqlIntroduction to NoSql
Introduction to NoSqlOmid Vahdaty
 
Escalando Aplicaciones Web
Escalando Aplicaciones WebEscalando Aplicaciones Web
Escalando Aplicaciones WebSantiago Coffey
 
Navigating NoSQL in cloudy skies
Navigating NoSQL in cloudy skiesNavigating NoSQL in cloudy skies
Navigating NoSQL in cloudy skiesshnkr_rmchndrn
 
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
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon RedshiftAmazon Web Services
 
Nonrelational Databases
Nonrelational DatabasesNonrelational Databases
Nonrelational DatabasesUdi Bauman
 
Couchbase - Yet Another Introduction
Couchbase - Yet Another IntroductionCouchbase - Yet Another Introduction
Couchbase - Yet Another IntroductionKelum Senanayake
 

Ähnlich wie DynamoDB Gluecon 2012 (20)

Nosql seminar
Nosql seminarNosql seminar
Nosql seminar
 
Big data vahidamiri-tabriz-13960226-datastack.ir
Big data vahidamiri-tabriz-13960226-datastack.irBig data vahidamiri-tabriz-13960226-datastack.ir
Big data vahidamiri-tabriz-13960226-datastack.ir
 
Front Range PHP NoSQL Databases
Front Range PHP NoSQL DatabasesFront Range PHP NoSQL Databases
Front Range PHP NoSQL Databases
 
JS App Architecture
JS App ArchitectureJS App Architecture
JS App Architecture
 
Big Data Goes Airborne. Propelling Your Big Data Initiative with Ironcluster ...
Big Data Goes Airborne. Propelling Your Big Data Initiative with Ironcluster ...Big Data Goes Airborne. Propelling Your Big Data Initiative with Ironcluster ...
Big Data Goes Airborne. Propelling Your Big Data Initiative with Ironcluster ...
 
Rolling With Riak
Rolling With RiakRolling With Riak
Rolling With Riak
 
Getting Started with Big Data and HPC in the Cloud - August 2015
Getting Started with Big Data and HPC in the Cloud - August 2015Getting Started with Big Data and HPC in the Cloud - August 2015
Getting Started with Big Data and HPC in the Cloud - August 2015
 
NoSQL
NoSQLNoSQL
NoSQL
 
Introduction to NoSql
Introduction to NoSqlIntroduction to NoSql
Introduction to NoSql
 
Escalando Aplicaciones Web
Escalando Aplicaciones WebEscalando Aplicaciones Web
Escalando Aplicaciones Web
 
Navigating NoSQL in cloudy skies
Navigating NoSQL in cloudy skiesNavigating NoSQL in cloudy skies
Navigating NoSQL in cloudy skies
 
The ABC of Big Data
The ABC of Big DataThe ABC of Big Data
The ABC of Big Data
 
Handling not so big data
Handling not so big dataHandling not so big data
Handling not so big data
 
CouchDB
CouchDBCouchDB
CouchDB
 
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
 
Selecting best NoSQL
Selecting best NoSQL Selecting best NoSQL
Selecting best NoSQL
 
MongoDB is the MashupDB
MongoDB is the MashupDBMongoDB is the MashupDB
MongoDB is the MashupDB
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon Redshift
 
Nonrelational Databases
Nonrelational DatabasesNonrelational Databases
Nonrelational Databases
 
Couchbase - Yet Another Introduction
Couchbase - Yet Another IntroductionCouchbase - Yet Another Introduction
Couchbase - Yet Another Introduction
 

Mehr von Appirio

How Happy Workers Make Happy Customers
How Happy Workers Make Happy Customers How Happy Workers Make Happy Customers
How Happy Workers Make Happy Customers Appirio
 
Building a CX Technology Strategy
Building a CX Technology Strategy Building a CX Technology Strategy
Building a CX Technology Strategy Appirio
 
Google for Work vs. Office 365: Which is right for your company?
Google for Work vs. Office 365: Which is right for your company?Google for Work vs. Office 365: Which is right for your company?
Google for Work vs. Office 365: Which is right for your company?Appirio
 
5 Ways to Empower Your Customers with Intelligent Self-Service
5 Ways to Empower Your Customers with Intelligent Self-Service5 Ways to Empower Your Customers with Intelligent Self-Service
5 Ways to Empower Your Customers with Intelligent Self-ServiceAppirio
 
Sunshot
Sunshot Sunshot
Sunshot Appirio
 
The Transformation of Enterprise Analytics
The Transformation of Enterprise Analytics The Transformation of Enterprise Analytics
The Transformation of Enterprise Analytics Appirio
 
The New Customer Service
The New Customer Service The New Customer Service
The New Customer Service Appirio
 
Infographic - The State of the Employee Portal
Infographic - The State of the Employee PortalInfographic - The State of the Employee Portal
Infographic - The State of the Employee PortalAppirio
 
Marketing and Sales: A Lesson in Marriage Counseling
Marketing and Sales: A Lesson in Marriage Counseling Marketing and Sales: A Lesson in Marriage Counseling
Marketing and Sales: A Lesson in Marriage Counseling Appirio
 
Cloud Innovation: Consumer Packaged Goods eBook
Cloud Innovation: Consumer Packaged Goods eBookCloud Innovation: Consumer Packaged Goods eBook
Cloud Innovation: Consumer Packaged Goods eBookAppirio
 
Maynard Webb: Making a Life While Making a Living
Maynard Webb: Making a Life While Making a LivingMaynard Webb: Making a Life While Making a Living
Maynard Webb: Making a Life While Making a LivingAppirio
 
Appirio: Reimagine Your Business With the Cloud
Appirio: Reimagine Your Business With the CloudAppirio: Reimagine Your Business With the Cloud
Appirio: Reimagine Your Business With the CloudAppirio
 
Salesforce Spring '13 Highlights
Salesforce Spring '13 HighlightsSalesforce Spring '13 Highlights
Salesforce Spring '13 HighlightsAppirio
 
Appirio State of Social eBook
Appirio State of Social eBookAppirio State of Social eBook
Appirio State of Social eBookAppirio
 
Case Study - Appirio as the Serverless Enterprise
Case Study - Appirio as the Serverless EnterpriseCase Study - Appirio as the Serverless Enterprise
Case Study - Appirio as the Serverless EnterpriseAppirio
 

Mehr von Appirio (15)

How Happy Workers Make Happy Customers
How Happy Workers Make Happy Customers How Happy Workers Make Happy Customers
How Happy Workers Make Happy Customers
 
Building a CX Technology Strategy
Building a CX Technology Strategy Building a CX Technology Strategy
Building a CX Technology Strategy
 
Google for Work vs. Office 365: Which is right for your company?
Google for Work vs. Office 365: Which is right for your company?Google for Work vs. Office 365: Which is right for your company?
Google for Work vs. Office 365: Which is right for your company?
 
5 Ways to Empower Your Customers with Intelligent Self-Service
5 Ways to Empower Your Customers with Intelligent Self-Service5 Ways to Empower Your Customers with Intelligent Self-Service
5 Ways to Empower Your Customers with Intelligent Self-Service
 
Sunshot
Sunshot Sunshot
Sunshot
 
The Transformation of Enterprise Analytics
The Transformation of Enterprise Analytics The Transformation of Enterprise Analytics
The Transformation of Enterprise Analytics
 
The New Customer Service
The New Customer Service The New Customer Service
The New Customer Service
 
Infographic - The State of the Employee Portal
Infographic - The State of the Employee PortalInfographic - The State of the Employee Portal
Infographic - The State of the Employee Portal
 
Marketing and Sales: A Lesson in Marriage Counseling
Marketing and Sales: A Lesson in Marriage Counseling Marketing and Sales: A Lesson in Marriage Counseling
Marketing and Sales: A Lesson in Marriage Counseling
 
Cloud Innovation: Consumer Packaged Goods eBook
Cloud Innovation: Consumer Packaged Goods eBookCloud Innovation: Consumer Packaged Goods eBook
Cloud Innovation: Consumer Packaged Goods eBook
 
Maynard Webb: Making a Life While Making a Living
Maynard Webb: Making a Life While Making a LivingMaynard Webb: Making a Life While Making a Living
Maynard Webb: Making a Life While Making a Living
 
Appirio: Reimagine Your Business With the Cloud
Appirio: Reimagine Your Business With the CloudAppirio: Reimagine Your Business With the Cloud
Appirio: Reimagine Your Business With the Cloud
 
Salesforce Spring '13 Highlights
Salesforce Spring '13 HighlightsSalesforce Spring '13 Highlights
Salesforce Spring '13 Highlights
 
Appirio State of Social eBook
Appirio State of Social eBookAppirio State of Social eBook
Appirio State of Social eBook
 
Case Study - Appirio as the Serverless Enterprise
Case Study - Appirio as the Serverless EnterpriseCase Study - Appirio as the Serverless Enterprise
Case Study - Appirio as the Serverless Enterprise
 

Kürzlich hochgeladen

Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
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
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
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
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
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
 

Kürzlich hochgeladen (20)

Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
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
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
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
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
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
 

DynamoDB Gluecon 2012

  • 1. ¡Ay, caramba! Wrestle Your NoSQL Data with DynamoDB Je ff Dougl a s @je ff do n th em ic C lo udSp ok es C ommun it y Arch itec t
  • 2. Rambling Talk Roadmap Short NoSQL overview (thanks Max @ 10gen!) Why NoSQL database are like Mexican Wrestlers Amazon DynamoDB in depth Amazon DynamoDB demo and code CloudSpokes challenge submissions for “Build an #Awesome Demo with Amazon DynamoDB”
  • 3. Times they are a-changin’ Cloud applications and APIs need to be fast, flexible and scalable. RDBMS typically do not scale well for certain data-intensive application. NoSQL is cloud friendly. “NoSQL is a rebellion against the DBAs who prevent us from doing shit.” - James Governor, Gluecon 2012
  • 4. Why is NoSQL #awesome? Developed to manage large volumes of data that do not necessarily follow a fixed schema Great for heavy read/write workloads Simple to setup, configure and administer Distributed, fault tolerant architecture Scale out not up Specialized database for the right task
  • 5. Key NoSQL differences Do not use SQL as a query language Dynamic & schema-less Non-relational, no JOIN operations No complex transactions May not give full ACID guarantees; eventually consistent instead. Performance and real-time nature is more important than consistency.
  • 6. NoSQL databases are “different”
  • 7. NoSQL database types Document store (MongoDB, CouchDB) A document-oriented database that stores, retrieves, and manages semi structured data including XML, YAML, JSON and binary (PDF, DOC) Key-value store (Cassandra, Redis) Stores scheme-less data referenced by a simple key value Graph database (Neo4j, FlockDB) Stores the relationship of data as a graph (social relations, network topologies)
  • 8. How to choose? With all of the different NoSQL database types, how do you choose the “best” one?
  • 9. El Toro Más Macho MongoDB Stores structured data as JSON-like documents. Ad hoc queries, indexing, master-slave replication, sharding, server-side JavaScript execution All the “cool kids” are using it. Node.js + MongoDB = WINNING!
  • 10. Muy Guapo Couchbase JSON Document store Embedded CouchDB with caching, clustering and high-performance storage management components. JavaScript as its query language and HTTP for an API Serve HTML and JavaScript-based “CouchApps”
  • 11. El Matador Misterio Redis What exactly is redis? MAGIC! By definition, it’s an in-memory, key-value data store with optional durability. Data model includes list of string, sets of strings, sorted sets of strings & hashes. Awesome at doing set comparisons.
  • 12. Comando Loco Apache Hadoop Fast, reliable analysis of both structured data and complex data. Derived from Google's MapReduce and File System (GFS) papers. Yahoo is one of the main contributors. Reliable data storage using the Hadoop Distributed File System (HDFS) and high- performance parallel data processing using MapReduce.
  • 13. El Jefe Supremo Apache Cassandra Massively scalable key-value store initially developed by Facebook. BigTable data model (nested hashes) running on an Amazon Dynamo-like infrastructure. Has some RDBMS “feel” with column families that make it it a hybrid column/row store. No single point of failure, fault-tolerant multi data center replication, MapReduce support. CQL (Cassandra Query Language)
  • 16. ¡Hola DynamoDB Amazon DynamoDB is a fast, fully managed key-value database service that scales seamlessly with extremely low latency and predictable performance. Store and retrieve any amount of data Serve any level of request traffic Hands off administration Pay for throughput and not storage
  • 17. ¡No! administración No hardware or software provisioning, setup and configuration, software patching, or partitioning data over multiple instances and regions. Specify the request throughput for your table and in the background, Amazon handles the provisioning of resources to meet the requested throughput rate. Automatically partitions/re-partitions data and provisions additional server capacity based upon table size & throughput. Synchronously replicates data across multiple facilities in an AWS Region giving you high availability and data durability.
  • 18. Muy rápido Consistent, predictable performance Runs on a new solid state disk (SSD) architecture for low-latency response times. Read latencies average less than 5 milliseconds, and write latencies average less than 10 milliseconds.
  • 19. Muy Escalable No table size limits (adiós SimpleDB?) No downtime when scaling up or down Unlimited storage Automatically scale machine resources in response to increases in database traffic without the need of client-side partitioning.
  • 20. Modelo de datos flexible Flexible data model with familiar tables, items and key-value pairs. Schema-less document storage. Each item can have different attributes. Easy to create and modify documents. Simple API. No cross-table joins. Use composite keys to model relationships.
  • 21. Duradero Consistent, disk-only writes Atomic increment/decrement (w/single API call) Optimistic concurrency control (aka conditional writes & updates) Item level transactions (even in bulk) Automatic and synchronous replication across data centers and availability zones.
  • 22. Costos? Pay for throughput and not storage. Priced per hour of provisioned read/write throughput Scales up and down well with a free tier
  • 23. Write throughput Write throughput Unit = size of item x writes/second $0.01 per hour for 10 write units
  • 24. Read throughput Strongly consistent reads (mucho dinero) Eventually consistent reads See Amazon’s site for read throughput pricing!
  • 25. Other features Integrates with Amazon Elastic MapReduce and Hadoop. Libraries, mappers and mocks for Django, Erlang, Java, .NET, Node.js, Perl, PHP, Python & Ruby. Session based authentication using Amazon Security Token Service Monitoring via CloudWatch
  • 26. DynamoDB Semantics Tables, item & attributes Items are indexed by primary key (single hash and composite keys) Items are a collection of attributes and attributes have a key and value. Unlimited number of attributes up to 64k total.
  • 27. Simple API calls CreateTable PutItem UpdateTable GetItem DeleteTable UpdateItem DescribeTable DeleteItem ListTables Query BatchGetItem Scan BatchWriteItem
  • 35. Flickr on DynamoDB Wcheung (Canada) submitted a Grails application that caches Flickr photos in Amazon DynamoDB. You can then search for cached feed entries by primary key (author + published date/time range) or by table scan. You can also “like” a photo, resulting in the atomic “like” counter for the item in DynamoDB getting incremented. http://screencast.com/t/MAVgm7xeqDpr
  • 36. Posterity Mbleigh (US) submitted a simple, barebones Twitter-esque service created in Ruby using Sinatra. It is far from complete but uses a number of DynamoDB's key features including Hash/Range Keys and Atomic Set Push Operations. http://www.screencast.com/t/me8hW27MYs3x
  • 37. DynamoDB Task Manager Darthdeus (Czech Republic) wrote his app in Ruby using Sinatra. It uses a custom ORM he wrote called DynamoRecord to access DynamoDB. His main idea was to get at least some of the ActiveRecord-ish API to DynamoDB using some basic metaprogramming http://www.youtube.com/watch?v=9tOzaDPP39I
  • 38. Simple Sur vey Peakpado (US) created an application using Ruby on Rails. For each table he created a sophisticated hask/range key model class which resulted in an API very similar to ActiveRecord for DynamoDB. http://screencast.com/t/ri1XkMxGcpnS
  • 39. Data Sets for Mumbai Romin (India) developed an API that exposes data sets of Mumbai city in JSON format. The solution uses Amazon DynamoDB for storing the data and a NodeJS application that exposes the REST interface and talks to Amazon DynamoDB via a backend Java application.

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n