SlideShare uma empresa Scribd logo
1 de 20
§ Focus
    § Raising awareness
    § Trends
    § High level

§ Questions
   § Why are non-relational databases increasing in usage?
   § What types or categories exist?
   § What are some examples in each category?
   § Why should I [the developer, the administrator, etc.] care?




A View of the Non-Relational Database Landscape
§ Trend 1: Data is becoming more and more connected
    § Joins, joins, and more joins (relationships are exploding)

§ Trend 2: Data sets are becoming larger and larger
    § Instruments dump massive amounts of data in the lab

§ Trend 3: Data is becoming less and less structured




Why Are Non-Relational DBs Increasing In Usage?
§ “Trend” 4: Cloud Computing
   § ..and perhaps more specifically, the scaling and fault tolerance needs.
   § For cloud providers, these are required hence addressed from the outset.
        § Backing up is replaced with having multiple active copies…
        § Data sets exist over multiple machines…
        § Nodes can crash and applications live to see another day…
        § Nodes can be added (or removed) at any point in time…




                                   vs.




Why Are Non-Relational DBs Increasing In Usage?
§ What is ACID?
   § A promise ring your RDBMS wears.
   § Atomic, Consistent, Isolated, Durable
   § ACID trips when:
        § Downtime is unacceptable
        § Reliability is >= 2 nodes
        § Challenging over networks

§ What is CAP Theorem?
   § Distributed systems can have two:
        § Consistency (data is correct all the time)
        § Availability (read and write all the time)
        § Partition Tolerance (plug and play nodes)

§ What is BASE?
   § More people much smarter than me came up with an ACID alternative:
   § Basically Available (appears to work all the time)
   § Soft state (doesn’t have to be consistent all the time…)
   § Eventually consistent (…but eventually it will be)


                                               Turn Up The BASE
Key Value Databases                        Column-Oriented Databases
Stores entities as key value                     Stores entities by column
 pairs in large hash tables                            (versus row)




Document Databases                                    Graph Databases
Stores documents (JSON)                      Stores entities as nodes and edges




                        Distributed Databases
                          More attribute than type!




    Non-Relational Database Landscape
Database System       Type                Open Source/Commercial/Proprietary
Dynamo                Key Value           Proprietary (Amazon)
SimpleDB              Key Value           Commercial (Amazon Web Services)
Project Voldemort     Key Value           Open Source (started @ LinkedIn)
Memcached             Key Value           Open Source
Redis                 Key Value           Open Source
Tokyo Cabinet         Key Value           Open Source
Cassandra             Column-oriented *   Open Source (started @ Facebook)
BigTable              Column-oriented *   Proprietary (Google), Commercial (AppEngine)
Hypertable            Column-oriented *   Open Source (implementation of BigTable)
Hbase                 Column-oriented *   Open Source (implementation of BigTable)
CouchDB               Document            Open Source
MongoDB               Document            Open Source
Neo4j                 Graph               Open Source




                    Notable Non-Relational Databases
§ Concepts
    § Domains: similar to table concept except schema-less.
    § Keys: arbitrary value.
    § Values: arbitrary blobs.
    § No explicit relationships between domains or within a domain.

§ Access
    § API (often SOAP or RESTful).
    § Some provide SQL-like syntax.
    § Basic filter predicates (=, !=, <, >, <=, >=).       Ke   Attributes
                                                           y
§ Integrity                                                1    Make: Nissan
    § Often contained in application code                       Model: Pathfinder
                                                                Color: Green
                                                                Year: 2003
                                                           2    Make: Nissan
                                                                Model: Pathfinder
                                                                Color: Green
                                                                Year: 2003
                                                                Transmission: Auto




                                              Key Value Databases
§ Memcached
   § Originally developed to speed up LiveJournal.com.
    § Generic in nature but intended for use in alleviating database load.
    § Lightening fast, distributed, RAM only, no persistence.
    § “Everyone” uses it: Facebook, Digg, Slashdot, Twitter, YouTube,
    SourceForge, …
          function get_foo(int userid)
          {
            result = db_select("SELECT * FROM users WHERE userid = ?", userid);
            return result;
          }


          function get_foo(int userid)
          {
            result = memcached_fetch("userrow:" + userid);
            if (!result) {
               result = db_select("SELECT * FROM users WHERE userid = ?", userid);
               memcached_add("userrow:" + userid, result);
            }
            return result;
          }




                     Key Value Databases: Memcached
§ SimpleDB
    § Written in Erlang (luckily you don’t need to know it to use it).
    § Eventually consistency is a key feature (concurrency!!)
    § Available via Amazon Web Services at very low cost.
    § Very common to use it in conjunction with other AWS offerings (EC2, S3,
    SQS).




                      Key Value Databases: SimpleDB
§ SimpleDB Limitations




                Key Value Databases: SimpleDB
§ Overview
                        EmployeeID   Name    Position
                        1            Moe     Director
                        2            Larry   Developer
                        3            Curly   Analyst


     A gross (emphasis on gross) simplification of what this serializes too…
            ROW: 1,Moe,Director;2,Larry,Developer;3,Curly,Analyst
          COLUMN: 1,2,3;Moe,Larry,Curly;Director,Developer,Analyst


§ Where It Shines
   § Querying many rows for smaller subsets of data (not all columns)
    § Maximizes disk performance (read scans)

§ Where It Is Outperformed
    § Querying all columns of a single row
    § Writing a new row if all of the column data is supplied at the same time



                              Column Oriented Databases
§ BigTable (and HBase, and Hypertable)
   § BigTable == Google
   § HBase == Interpretation of BigTable (Java) + Hadoop
   § Hypertable == Interpretation of BigTable (C++) + Hadoop

§ Collections of “Multi-dimensional Sparse Maps”
                   A–y                  cell => row, column, timestamp
                  A–n
             A          Contents   B                 …

             A’                    B’                …




§ Rows                                  § Columns
   § Name is an arbitrary string.           § Two level naming structure
   § Ordered lexicographically.                 § family:optional_qualifier
   § Atomic access.                         § Families are a unit of access.
   § Creation is implicit.                  § Few column families in a table
                                            § Families can be marked with attributes.
                                            § Families can be assigned to locality groups


     Column Like Databases: BigTable & Co.
content
    “www.cnn.com”       content      language    anchor: bms.com
                            Contents
  “www.cnn.com/...”     content      language    …
                            Contents
“www.cnn.com/.../...”   content      language    …



    “Application A”     jonest: settings    schmoej: settings

    “Application B”     …                   …

    “Application C”     …                   …


                           assay:a
        “Sample X”      assay:a             assay:b
                                Contents
        “Sample Y”      …                   …
                                Contents
        “Sample Z”      …                   …




Column Like Databases: BigTable & Co.
§ Overview
   § Similar to key value stores
   § Most employ JSON.
   § Inherently schema-less
   § Most are denormalized.
   § Often composed of collections (akin to tables w/o schema)




                                    Document Databases
“… is a distributed, fault tolerant, and schema-free
              document-oriented database accessible via a RESTful
                               HTTP/JSON API…”

§ Other Tidbits
    § Believe it or not, idea was inspired by Lotus Notes.
    § Hosted with Apache, written in Erlang.
    § Futon: clean, stream-lined administrator interface.

§ Basic API
    § Create: HTTP PUT
    § Read: HTTP GET
    § Update: HTTP POST
    § Delete: HTTP DELETE

§ Adding Structure To Semi-Structured Data
    § Views are the method of aggregating and reporting on documents.
    § Built on-demand, dynamically, and do affect underlying documents.
    § Views are persisted.


                      Document Databases: CouchDB
Document Databases: CouchDB
Document Databases: CouchDB
§ Overview
    § Nodes represent entities.
    § Edges represent relationships.
    § Nodes and edges can have associated attributes (key values).
    § Most anything can be described as a graph.
    § Key value store with full support for relationships.




                                                Graph Databases
§ Overview
    § Open source.
    § Java based.
    § Lightweight (single <500k JAR with minimal dependencies).
    § Still very early in development but looks promising.
    § Can handle graphs of several billion nodes/relationships/properties.
    § Disk based, solid state drive (SSD) ready.
    § Optional layers to expose it as an RDF store (OWL, SPARQL).
    § Has RDBMS features (ACID, durable persistence)




                                     Graph Databases: Neo4j
§ If you’re in the cloud, you’re going to use them.
   § Amazon Web Services: SimpleDB
   § Google App Engine: BigTable
   § Open Source: Memcached, HBase, Hypertable, Cassandra, and more…

§ Break the habit; relational databases do not fit every problem.
    § Stuffing files into a RDBMS, maybe there’s something better?
   § Using a RDBMS for caching, perhaps a lighter-weight solution is better?
   § Cramming log data into a RDBMS, perhaps a key value store is better?

§ Despite the hype, relational databases are not doomed.
   § Though in my opinion their role and place will certainly change.

§ Scaling is a real challenge for relational databases.
   § Sharding is a band-aid, not feasible beyond a few nodes.

§ There is a hit in overcoming the initial learning curve
   § It changes how you build applications


                           Parting Thoughts & Musings

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Hadoop MapReduce Fundamentals
Hadoop MapReduce FundamentalsHadoop MapReduce Fundamentals
Hadoop MapReduce Fundamentals
 
Intro to HBase
Intro to HBaseIntro to HBase
Intro to HBase
 
Mongodb vs mysql
Mongodb vs mysqlMongodb vs mysql
Mongodb vs mysql
 
NoSQL databases - An introduction
NoSQL databases - An introductionNoSQL databases - An introduction
NoSQL databases - An introduction
 
NOSQL vs SQL
NOSQL vs SQLNOSQL vs SQL
NOSQL vs SQL
 
NOSQL Database: Apache Cassandra
NOSQL Database: Apache CassandraNOSQL Database: Apache Cassandra
NOSQL Database: Apache Cassandra
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Mongo DB Presentation
Mongo DB PresentationMongo DB Presentation
Mongo DB Presentation
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
 
Mongo DB 102
Mongo DB 102Mongo DB 102
Mongo DB 102
 
Copy of MongoDB .pptx
Copy of MongoDB .pptxCopy of MongoDB .pptx
Copy of MongoDB .pptx
 
9. Document Oriented Databases
9. Document Oriented Databases9. Document Oriented Databases
9. Document Oriented Databases
 
The Basics of MongoDB
The Basics of MongoDBThe Basics of MongoDB
The Basics of MongoDB
 
Sql vs NoSQL
Sql vs NoSQLSql vs NoSQL
Sql vs NoSQL
 
SQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDBSQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDB
 
MongoDB 101
MongoDB 101MongoDB 101
MongoDB 101
 
Hbase
HbaseHbase
Hbase
 
MongoDB
MongoDBMongoDB
MongoDB
 

Semelhante a Non Relational Databases

Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)
Don Demcsak
 
No sql solutions - 공개용
No sql solutions - 공개용No sql solutions - 공개용
No sql solutions - 공개용
Byeongweon Moon
 

Semelhante a Non Relational Databases (20)

MongoDB is the MashupDB
MongoDB is the MashupDBMongoDB is the MashupDB
MongoDB is the MashupDB
 
MongoDB - Ruby document store that doesn't rhyme with ouch
MongoDB - Ruby document store that doesn't rhyme with ouchMongoDB - Ruby document store that doesn't rhyme with ouch
MongoDB - Ruby document store that doesn't rhyme with ouch
 
Introduction to ArangoDB (nosql matters Barcelona 2012)
Introduction to ArangoDB (nosql matters Barcelona 2012)Introduction to ArangoDB (nosql matters Barcelona 2012)
Introduction to ArangoDB (nosql matters Barcelona 2012)
 
Mongodb my
Mongodb myMongodb my
Mongodb my
 
MongoDB
MongoDBMongoDB
MongoDB
 
MongoDB
MongoDBMongoDB
MongoDB
 
Spring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_dataSpring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_data
 
No SQL : Which way to go? Presented at DDDMelbourne 2015
No SQL : Which way to go?  Presented at DDDMelbourne 2015No SQL : Which way to go?  Presented at DDDMelbourne 2015
No SQL : Which way to go? Presented at DDDMelbourne 2015
 
NoSQL, which way to go?
NoSQL, which way to go?NoSQL, which way to go?
NoSQL, which way to go?
 
Mongodb lab
Mongodb labMongodb lab
Mongodb lab
 
On Rails with Apache Cassandra
On Rails with Apache CassandraOn Rails with Apache Cassandra
On Rails with Apache Cassandra
 
Introduction to NoSql
Introduction to NoSqlIntroduction to NoSql
Introduction to NoSql
 
Apache Spark 101 - Demi Ben-Ari - Panorays
Apache Spark 101 - Demi Ben-Ari - PanoraysApache Spark 101 - Demi Ben-Ari - Panorays
Apache Spark 101 - Demi Ben-Ari - Panorays
 
Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)
 
MongoDB World 2019: Raiders of the Anti-patterns: A Journey Towards Fixing Sc...
MongoDB World 2019: Raiders of the Anti-patterns: A Journey Towards Fixing Sc...MongoDB World 2019: Raiders of the Anti-patterns: A Journey Towards Fixing Sc...
MongoDB World 2019: Raiders of the Anti-patterns: A Journey Towards Fixing Sc...
 
Navigating NoSQL in cloudy skies
Navigating NoSQL in cloudy skiesNavigating NoSQL in cloudy skies
Navigating NoSQL in cloudy skies
 
MongoDB
MongoDBMongoDB
MongoDB
 
Apache Drill
Apache DrillApache Drill
Apache Drill
 
No sql solutions - 공개용
No sql solutions - 공개용No sql solutions - 공개용
No sql solutions - 공개용
 
No sq lv1_0
No sq lv1_0No sq lv1_0
No sq lv1_0
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 

Non Relational Databases

  • 1. § Focus § Raising awareness § Trends § High level § Questions § Why are non-relational databases increasing in usage? § What types or categories exist? § What are some examples in each category? § Why should I [the developer, the administrator, etc.] care? A View of the Non-Relational Database Landscape
  • 2. § Trend 1: Data is becoming more and more connected § Joins, joins, and more joins (relationships are exploding) § Trend 2: Data sets are becoming larger and larger § Instruments dump massive amounts of data in the lab § Trend 3: Data is becoming less and less structured Why Are Non-Relational DBs Increasing In Usage?
  • 3. § “Trend” 4: Cloud Computing § ..and perhaps more specifically, the scaling and fault tolerance needs. § For cloud providers, these are required hence addressed from the outset. § Backing up is replaced with having multiple active copies… § Data sets exist over multiple machines… § Nodes can crash and applications live to see another day… § Nodes can be added (or removed) at any point in time… vs. Why Are Non-Relational DBs Increasing In Usage?
  • 4. § What is ACID? § A promise ring your RDBMS wears. § Atomic, Consistent, Isolated, Durable § ACID trips when: § Downtime is unacceptable § Reliability is >= 2 nodes § Challenging over networks § What is CAP Theorem? § Distributed systems can have two: § Consistency (data is correct all the time) § Availability (read and write all the time) § Partition Tolerance (plug and play nodes) § What is BASE? § More people much smarter than me came up with an ACID alternative: § Basically Available (appears to work all the time) § Soft state (doesn’t have to be consistent all the time…) § Eventually consistent (…but eventually it will be) Turn Up The BASE
  • 5. Key Value Databases Column-Oriented Databases Stores entities as key value Stores entities by column pairs in large hash tables (versus row) Document Databases Graph Databases Stores documents (JSON) Stores entities as nodes and edges Distributed Databases More attribute than type! Non-Relational Database Landscape
  • 6. Database System Type Open Source/Commercial/Proprietary Dynamo Key Value Proprietary (Amazon) SimpleDB Key Value Commercial (Amazon Web Services) Project Voldemort Key Value Open Source (started @ LinkedIn) Memcached Key Value Open Source Redis Key Value Open Source Tokyo Cabinet Key Value Open Source Cassandra Column-oriented * Open Source (started @ Facebook) BigTable Column-oriented * Proprietary (Google), Commercial (AppEngine) Hypertable Column-oriented * Open Source (implementation of BigTable) Hbase Column-oriented * Open Source (implementation of BigTable) CouchDB Document Open Source MongoDB Document Open Source Neo4j Graph Open Source Notable Non-Relational Databases
  • 7. § Concepts § Domains: similar to table concept except schema-less. § Keys: arbitrary value. § Values: arbitrary blobs. § No explicit relationships between domains or within a domain. § Access § API (often SOAP or RESTful). § Some provide SQL-like syntax. § Basic filter predicates (=, !=, <, >, <=, >=). Ke Attributes y § Integrity 1 Make: Nissan § Often contained in application code Model: Pathfinder Color: Green Year: 2003 2 Make: Nissan Model: Pathfinder Color: Green Year: 2003 Transmission: Auto Key Value Databases
  • 8. § Memcached § Originally developed to speed up LiveJournal.com. § Generic in nature but intended for use in alleviating database load. § Lightening fast, distributed, RAM only, no persistence. § “Everyone” uses it: Facebook, Digg, Slashdot, Twitter, YouTube, SourceForge, … function get_foo(int userid) { result = db_select("SELECT * FROM users WHERE userid = ?", userid); return result; } function get_foo(int userid) { result = memcached_fetch("userrow:" + userid); if (!result) { result = db_select("SELECT * FROM users WHERE userid = ?", userid); memcached_add("userrow:" + userid, result); } return result; } Key Value Databases: Memcached
  • 9. § SimpleDB § Written in Erlang (luckily you don’t need to know it to use it). § Eventually consistency is a key feature (concurrency!!) § Available via Amazon Web Services at very low cost. § Very common to use it in conjunction with other AWS offerings (EC2, S3, SQS). Key Value Databases: SimpleDB
  • 10. § SimpleDB Limitations Key Value Databases: SimpleDB
  • 11. § Overview EmployeeID Name Position 1 Moe Director 2 Larry Developer 3 Curly Analyst A gross (emphasis on gross) simplification of what this serializes too… ROW: 1,Moe,Director;2,Larry,Developer;3,Curly,Analyst COLUMN: 1,2,3;Moe,Larry,Curly;Director,Developer,Analyst § Where It Shines § Querying many rows for smaller subsets of data (not all columns) § Maximizes disk performance (read scans) § Where It Is Outperformed § Querying all columns of a single row § Writing a new row if all of the column data is supplied at the same time Column Oriented Databases
  • 12. § BigTable (and HBase, and Hypertable) § BigTable == Google § HBase == Interpretation of BigTable (Java) + Hadoop § Hypertable == Interpretation of BigTable (C++) + Hadoop § Collections of “Multi-dimensional Sparse Maps” A–y cell => row, column, timestamp A–n A Contents B … A’ B’ … § Rows § Columns § Name is an arbitrary string. § Two level naming structure § Ordered lexicographically. § family:optional_qualifier § Atomic access. § Families are a unit of access. § Creation is implicit. § Few column families in a table § Families can be marked with attributes. § Families can be assigned to locality groups Column Like Databases: BigTable & Co.
  • 13. content “www.cnn.com” content language anchor: bms.com Contents “www.cnn.com/...” content language … Contents “www.cnn.com/.../...” content language … “Application A” jonest: settings schmoej: settings “Application B” … … “Application C” … … assay:a “Sample X” assay:a assay:b Contents “Sample Y” … … Contents “Sample Z” … … Column Like Databases: BigTable & Co.
  • 14. § Overview § Similar to key value stores § Most employ JSON. § Inherently schema-less § Most are denormalized. § Often composed of collections (akin to tables w/o schema) Document Databases
  • 15. “… is a distributed, fault tolerant, and schema-free document-oriented database accessible via a RESTful HTTP/JSON API…” § Other Tidbits § Believe it or not, idea was inspired by Lotus Notes. § Hosted with Apache, written in Erlang. § Futon: clean, stream-lined administrator interface. § Basic API § Create: HTTP PUT § Read: HTTP GET § Update: HTTP POST § Delete: HTTP DELETE § Adding Structure To Semi-Structured Data § Views are the method of aggregating and reporting on documents. § Built on-demand, dynamically, and do affect underlying documents. § Views are persisted. Document Databases: CouchDB
  • 18. § Overview § Nodes represent entities. § Edges represent relationships. § Nodes and edges can have associated attributes (key values). § Most anything can be described as a graph. § Key value store with full support for relationships. Graph Databases
  • 19. § Overview § Open source. § Java based. § Lightweight (single <500k JAR with minimal dependencies). § Still very early in development but looks promising. § Can handle graphs of several billion nodes/relationships/properties. § Disk based, solid state drive (SSD) ready. § Optional layers to expose it as an RDF store (OWL, SPARQL). § Has RDBMS features (ACID, durable persistence) Graph Databases: Neo4j
  • 20. § If you’re in the cloud, you’re going to use them. § Amazon Web Services: SimpleDB § Google App Engine: BigTable § Open Source: Memcached, HBase, Hypertable, Cassandra, and more… § Break the habit; relational databases do not fit every problem. § Stuffing files into a RDBMS, maybe there’s something better? § Using a RDBMS for caching, perhaps a lighter-weight solution is better? § Cramming log data into a RDBMS, perhaps a key value store is better? § Despite the hype, relational databases are not doomed. § Though in my opinion their role and place will certainly change. § Scaling is a real challenge for relational databases. § Sharding is a band-aid, not feasible beyond a few nodes. § There is a hit in overcoming the initial learning curve § It changes how you build applications Parting Thoughts & Musings