SlideShare a Scribd company logo
1 of 99
Download to read offline
The	
  State	
  of	
  NoSQL
bensco'ield	
  –	
  viget	
  labs
developer	
  day	
  durham
27	
  february	
  2010
Motivations
Performance
Scalability
Meh
Flexibility
Complexity
Functionality
“Comics”	
  Is	
  Hard
Charlie	
  Chaplin




                                               Jet	
  Li



            Hank	
  Mann

                           Marian	
  Collier
Taxonomy
Key-­‐Value	
  Stores
distributed	
  hash	
  tables
Performance     high
Scalability     high
Flexibility     high
Complexity      none
Functionality   variable	
  (none)
Dynamo
GT.M
PStore
Redis
Column-­‐Oriented	
  Stores
semi-­‐structured
Performance     high
Scalability     high
Flexibility     moderate
Complexity      low
Functionality   minimal
BigTable
Cassandra
HBase
Document-­‐Oriented	
  Stores
also	
  semi-­‐structured
Performance     high
Scalability     variable	
  (high)
Flexibility     high
Complexity      low
Functionality   variable	
  (low)
CouchDB
MongoDB
RDDB
Riak
Graph	
  Databases
graph	
  theory
Performance     variable
Scalability     variable
Flexibility     high
Complexity      high
Functionality   graph	
  theory
ActiveRDF	
  
AllegroGraph
Neo4J
Relational	
  Databases
Performance     variable
Scalability     variable
Flexibility     low
Complexity      moderate
Functionality   relational	
  algebra
Examples
Redis
Data	
  Types
strings
lists
sets
sorted	
  sets
In-­‐Memory
semi-­‐persistent	
  /	
  fully	
  persistent
master-­‐slave	
  replication
memory-­‐bound
require 'redis'

gl = Redis.new

# A string
gl['name'] = 'Kyle Rayner'
gl['name']
gl.delete('name')

# A list
gl.push_tail 'to-dos', 'Lose Ion power'
gl.push_tail 'to-dos', 'Mourn dead loved ones'
gl.push_tail 'to-dos', 'Blow up zombie lanterns'

gl.list_range('to-dos', 0, -1)
Tokyo	
  Cabinet
Data	
  Types
binary	
  data
strings
Tables!?
Related	
  Projects
tyrant
dystopia
promenade
require 'rufus/tokyo'

# Key-value
jli = Rufus::Tokyo::Cabinet.new('jl.tch')
jli['members'] = [
  'Batman',
  'Black Canary',
  'Blue Beetle',
  'Captain Marvel',
  'Doctor Light',
  'Doctor Fate',
  'Guy Gardner',
  'Martian Manhunter',
  'Mister Miracle'
].to_yaml

YAML.load(jli['members'])
require 'rufus/tokyo'

# Table
big7 = Rufus::Tokyo::Table.new('big7.tct')

big7['s']    =   {'name'   =>   'Superman', 'role' => 'deus ex machina'}
big7['b']    =   {'name'   =>   'Batman', 'role' => 'mastermind'}
big7['gl']   =   {'name'   =>   'Green Lantern', 'role' => 'space cop'}
big7['f']    =   {'name'   =>   'Flash', 'role' => 'speedster'}
big7['mm']   =   {'name'   =>   'Martian Manhunter', 'role' => '?'}
big7['ww']   =   {'name'   =>   'Wonder Woman', 'role' => 'hitter'}
big7['a']    =   {'name'   =>   'Aquaman', 'role' => 'fish-talking'}

big7.query {|q|
  q.add_condition 'role', :streq, 'fish-talking'
}
Cassandra
Genealogy
Dynamo
BigTable
Column-­‐Oriented
columns
supercolumns
column	
  families
Distributed
automatic	
  replication
eventual	
  consistency
easy	
  expansion
Availability
weak	
  reads/writes
quorum	
  reads/writes
require 'cassandra'

op = Cassandra.new('OnePiece')

op.insert(:People, '1', {'name' => 'Luffy'})
op.insert(:People, '2', {'name' => 'Crocodile'})
op.insert(:People, '3', {'name' => 'Mr. 3'})

op.insert(:Fights, '1', {'opponents' => {UUID.new => '2'}})
op.insert(:Fights, '1', {'opponents' => {UUID.new => '3'}})

luffy_fights = op.get(:Fights, '1', 'opponents')
luffy_fights.map {|t, opp| op.get(:People, opp, 'name')}
CouchDB
Web-­‐Inspired
JSON	
  storage
HTTP	
  /	
  RESTful	
  interface
Views
predeWined,	
  updated	
  incrementally
javascript	
  for	
  map/reduce
Updates
full,	
  including	
  embedded	
  documents
require 'couchrest'

konoha = CouchRest.database!('http://127.0.0.1:5984/konoha')
naruto = konoha.save_doc {
  'name' => 'Naruto Uzumaki',
  'chakra' => 'wind'
}
shikamaru = konoha.save_doc {
  'name' => 'Shikamaru Nara',
  'chunin' => true
}

konoha.save_doc {
  '_id' => '_design/first',
  :views => {
    :chunin => {
      :map => 'function(doc){if(doc.chunin){emit(null, doc);}}'
    }
  }
}

puts konoha.views('first/chunin')['rows'].inspect
MongoDB
Storage
binary	
  JSON	
  documents
http://bsonspec.org
Access
native	
  clients
Queries
dynamic
index-­‐based
Updates
allows	
  partial	
  updates
require 'mongo'

avengers = Mongo::Connection.new.db('avengers')
members = avengers.collection('members')

members.insert    {'name'   =>   'Ant-Man'}
members.insert    {'name'   =>   'Hulk'}
members.insert    {'name'   =>   'Iron Man'}
members.insert    {'name'   =>   'Thor'}
members.insert    {'name'   =>   'Wasp'}

members.create_index('name')

pym = members.find {'name' => 'Ant-Man'}
pym['name'] = 'Giant-Man'
pym.save

members.remove {'name' => 'Hulk'}

members.insert {'name' => 'Captain America'}
Riak
Ask	
  Sean
also	
  Web-­‐Inspired
JSON	
  storage
HTTP	
  /	
  RESTful	
  interface
links	
  for	
  relationships
Decentralized
no	
  privileged	
  nodes
ConWigurable
store	
  /	
  read	
  /	
  write
require 'jiak'

jc = JiakClient.new('127.0.0.1', 8098)
jc.set_bucket_schema('supervillains', {
   'allowed_fields' => ['name', 'alias', 'power']
})

jc.store({
   'bucket' => 'supervillains',
   'key' => 'Normie',
   'object' => {
     'name' => 'Norman Osborn',
     'alias' => 'Green Goblin',
     'power' => 'Supreme jerkfacedness'
   },
   'links' => []
})

kth = jc.fetch('supervillains', 'Normie')
Neo4J
Structure
nodes	
  and	
  edges
key-­‐value	
  pairs
Queries
lucene
gremlin
require 'neo4j'

class Person
  include Neo4j::NodeMixin

  property :name, :mutant
  index :name, :mutant

  has_n :crushes
  has_n :hookups
  has_n :marriages

  def initialize(name, mutant = true)
    name = name
    mutant = mutant
  end
end
Neo4j::Transaction.run do
  magneto = Person.new('Magneto')
  esme    = Person.new('Esme')
  rogue   = Person.new('Rogue')
  magda   = Person.new('Magda', false)
  wasp    = Person.new('Wasp', false)

  magneto.crushes   << wasp
  magneto.hookups   << rogue
  magneto.marriages << magda

  esme.crushes      << magneto
  rogue.hookups     << magneto
  magda.marriages   << magneto
end
magneto = Person.find(:name => 'Magneto')

# Who likes Magneto?
magneto.relationships.incoming(:crushes).nodes

# Which non-mutants has Magneto dated?
magneto.hookups{ !mutant? }.to_a
Simulations
Structure
people
{
  ‘name’:‘Jimmy Olsen’
  ‘title’:‘Superman’s Pal’
  ‘company_id’:12441
}

companies
{
  _id:12441
  ‘name’:‘Daily Planet’
}
Lack	
  of	
  Structure
mysql> SELECT * FROM people LIMIT 1 G
*************************** 1. row ***************************
     id: 1
content: ---
company: Daily Planet
name: Jimmy Olsen
title: Superman’s Pal
But	
  wait!
friendfeed
friendly
mysql> desc people;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES |      | NULL    |       |
| name | varchar(50) | YES |       | NULL    |       |
+-------+-------------+------+-----+---------+-------+


mysql> desc attributes;
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| id        | int(11)      | YES |      | NULL    |       |
| person_id | int(11)      | YES |      | NULL    |       |
| attribute | varchar(50) | YES |       | NULL    |       |
| value     | varchar(100) | YES |      | NULL    |       |
+-----------+--------------+------+-----+---------+-------+
Not	
  Only	
  SQL
Polyglot	
  Persistence
Caching
Already	
  in	
  Use
memcached
Queues
Long-­‐running	
  processes
resque
Logging
Rails	
  Log	
  Replacement
http://github.com/peburrows/mongo_db_logger
Hybrid	
  Domains
different	
  domains
Publishing
e-­‐commerce
documents
Dating
e-­‐commerce
social	
  graph
different	
  scales
Photo	
  Sharing
user	
  accounts
uploaded	
  photos
Next	
  Steps
Explore
Database	
  List
http://internetmindmap.com/database_software


NoSQL	
  Google	
  Group
http://groups.google.com/group/nosql-­‐discussion
Ignore	
  the	
  Database
Logical	
  Modeling	
  First
be	
  mindful
Change	
  the	
  Default
Application	
  Templates
start	
  with	
  something	
  new
benscoWield
@bscoWield
ben.scoWield@viget.com
http:/    /spkr8.com/bscoWield
http:/    /viget.com/extend
http:	
   /benscoWield.com
     /

More Related Content

What's hot

From mysql to MongoDB(MongoDB2011北京交流会)
From mysql to MongoDB(MongoDB2011北京交流会)From mysql to MongoDB(MongoDB2011北京交流会)
From mysql to MongoDB(MongoDB2011北京交流会)
Night Sailer
 
MongoDB Indexing Constraints and Creative Schemas
MongoDB Indexing Constraints and Creative SchemasMongoDB Indexing Constraints and Creative Schemas
MongoDB Indexing Constraints and Creative Schemas
MongoDB
 

What's hot (19)

Introduction to Ruby MagLev
Introduction to Ruby MagLevIntroduction to Ruby MagLev
Introduction to Ruby MagLev
 
From mysql to MongoDB(MongoDB2011北京交流会)
From mysql to MongoDB(MongoDB2011北京交流会)From mysql to MongoDB(MongoDB2011北京交流会)
From mysql to MongoDB(MongoDB2011北京交流会)
 
Inside MongoDB: the Internals of an Open-Source Database
Inside MongoDB: the Internals of an Open-Source DatabaseInside MongoDB: the Internals of an Open-Source Database
Inside MongoDB: the Internals of an Open-Source Database
 
MongoDB Indexing Constraints and Creative Schemas
MongoDB Indexing Constraints and Creative SchemasMongoDB Indexing Constraints and Creative Schemas
MongoDB Indexing Constraints and Creative Schemas
 
MongoDB Europe 2016 - Debugging MongoDB Performance
MongoDB Europe 2016 - Debugging MongoDB PerformanceMongoDB Europe 2016 - Debugging MongoDB Performance
MongoDB Europe 2016 - Debugging MongoDB Performance
 
Data Wars: The Bloody Enterprise strikes back
Data Wars: The Bloody Enterprise strikes backData Wars: The Bloody Enterprise strikes back
Data Wars: The Bloody Enterprise strikes back
 
Advanced Redis data structures
Advanced Redis data structuresAdvanced Redis data structures
Advanced Redis data structures
 
CouchDB @ red dirt ruby conference
CouchDB @ red dirt ruby conferenceCouchDB @ red dirt ruby conference
CouchDB @ red dirt ruby conference
 
Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling
 
Rails Model Basics
Rails Model BasicsRails Model Basics
Rails Model Basics
 
Techtalk Rolling Scopes 2017 neural networks
Techtalk Rolling Scopes 2017 neural networksTechtalk Rolling Scopes 2017 neural networks
Techtalk Rolling Scopes 2017 neural networks
 
Map/Confused? A practical approach to Map/Reduce with MongoDB
Map/Confused? A practical approach to Map/Reduce with MongoDBMap/Confused? A practical approach to Map/Reduce with MongoDB
Map/Confused? A practical approach to Map/Reduce with MongoDB
 
WOTC_Import
WOTC_ImportWOTC_Import
WOTC_Import
 
MongoDB + Java - Everything you need to know
MongoDB + Java - Everything you need to know MongoDB + Java - Everything you need to know
MongoDB + Java - Everything you need to know
 
Distributed algorithms for big data @ GeeCon
Distributed algorithms for big data @ GeeConDistributed algorithms for big data @ GeeCon
Distributed algorithms for big data @ GeeCon
 
Indexing
IndexingIndexing
Indexing
 
Latinoware
LatinowareLatinoware
Latinoware
 
Webinaire 2 de la série « Retour aux fondamentaux » : Votre première applicat...
Webinaire 2 de la série « Retour aux fondamentaux » : Votre première applicat...Webinaire 2 de la série « Retour aux fondamentaux » : Votre première applicat...
Webinaire 2 de la série « Retour aux fondamentaux » : Votre première applicat...
 
MongoDB Europe 2016 - ETL for Pros – Getting Data Into MongoDB The Right Way
MongoDB Europe 2016 - ETL for Pros – Getting Data Into MongoDB The Right WayMongoDB Europe 2016 - ETL for Pros – Getting Data Into MongoDB The Right Way
MongoDB Europe 2016 - ETL for Pros – Getting Data Into MongoDB The Right Way
 

Viewers also liked

D E V E L O P M E N T A L P S Y C H O L O G Y A N D L E A R N I N G I B...
D E V E L O P M E N T A L  P S Y C H O L O G Y  A N D  L E A R N I N G   I  B...D E V E L O P M E N T A L  P S Y C H O L O G Y  A N D  L E A R N I N G   I  B...
D E V E L O P M E N T A L P S Y C H O L O G Y A N D L E A R N I N G I B...
Universidad Técnica Particular de Loja
 
Social media pentru companii - mituri si explicatii
Social media pentru companii - mituri si explicatiiSocial media pentru companii - mituri si explicatii
Social media pentru companii - mituri si explicatii
Marius Sescu
 

Viewers also liked (9)

D E V E L O P M E N T A L P S Y C H O L O G Y A N D L E A R N I N G I B...
D E V E L O P M E N T A L  P S Y C H O L O G Y  A N D  L E A R N I N G   I  B...D E V E L O P M E N T A L  P S Y C H O L O G Y  A N D  L E A R N I N G   I  B...
D E V E L O P M E N T A L P S Y C H O L O G Y A N D L E A R N I N G I B...
 
Mind Control - DevNation Atlanta
Mind Control - DevNation AtlantaMind Control - DevNation Atlanta
Mind Control - DevNation Atlanta
 
Understanding Mastery
Understanding MasteryUnderstanding Mastery
Understanding Mastery
 
Charlotte.rb - "Comics" Is Hard
Charlotte.rb - "Comics" Is HardCharlotte.rb - "Comics" Is Hard
Charlotte.rb - "Comics" Is Hard
 
Marketer Bun Sau Extraordinar
Marketer Bun Sau ExtraordinarMarketer Bun Sau Extraordinar
Marketer Bun Sau Extraordinar
 
The Future of Data
The Future of DataThe Future of Data
The Future of Data
 
With a Mighty Hammer
With a Mighty HammerWith a Mighty Hammer
With a Mighty Hammer
 
Building Cloud Castles
Building Cloud CastlesBuilding Cloud Castles
Building Cloud Castles
 
Social media pentru companii - mituri si explicatii
Social media pentru companii - mituri si explicatiiSocial media pentru companii - mituri si explicatii
Social media pentru companii - mituri si explicatii
 

Similar to The State of NoSQL

Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
Dmitry Buzdin
 
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016
DataStax
 
Going beyond Django ORM limitations with Postgres
Going beyond Django ORM limitations with PostgresGoing beyond Django ORM limitations with Postgres
Going beyond Django ORM limitations with Postgres
Craig Kerstiens
 
Cassandra Explained
Cassandra ExplainedCassandra Explained
Cassandra Explained
Eric Evans
 

Similar to The State of NoSQL (20)

NoSQL @ CodeMash 2010
NoSQL @ CodeMash 2010NoSQL @ CodeMash 2010
NoSQL @ CodeMash 2010
 
Your Database Cannot Do this (well)
Your Database Cannot Do this (well)Your Database Cannot Do this (well)
Your Database Cannot Do this (well)
 
Scaling Databases with DBIx::Router
Scaling Databases with DBIx::RouterScaling Databases with DBIx::Router
Scaling Databases with DBIx::Router
 
The rise of json in rdbms land jab17
The rise of json in rdbms land jab17The rise of json in rdbms land jab17
The rise of json in rdbms land jab17
 
Hands On Spring Data
Hands On Spring DataHands On Spring Data
Hands On Spring Data
 
Open Source Search: An Analysis
Open Source Search: An AnalysisOpen Source Search: An Analysis
Open Source Search: An Analysis
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
 
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016
 
DataMapper
DataMapperDataMapper
DataMapper
 
Redis the better NoSQL
Redis the better NoSQLRedis the better NoSQL
Redis the better NoSQL
 
PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...
PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...
PuppetConf 2017: What's in a Name? Scaling ENC with DNS- Cameron Nicholson, A...
 
RedisConf18 - Redis and Elasticsearch
RedisConf18 - Redis and ElasticsearchRedisConf18 - Redis and Elasticsearch
RedisConf18 - Redis and Elasticsearch
 
Going beyond Django ORM limitations with Postgres
Going beyond Django ORM limitations with PostgresGoing beyond Django ORM limitations with Postgres
Going beyond Django ORM limitations with Postgres
 
jRuby: The best of both worlds
jRuby: The best of both worldsjRuby: The best of both worlds
jRuby: The best of both worlds
 
DataMapper @ RubyEnRails2009
DataMapper @ RubyEnRails2009DataMapper @ RubyEnRails2009
DataMapper @ RubyEnRails2009
 
Cassandra Explained
Cassandra ExplainedCassandra Explained
Cassandra Explained
 
Ruby is Awesome
Ruby is AwesomeRuby is Awesome
Ruby is Awesome
 
Redis for the Everyday Developer
Redis for the Everyday DeveloperRedis for the Everyday Developer
Redis for the Everyday Developer
 
Scala in Places API
Scala in Places APIScala in Places API
Scala in Places API
 
R code for data manipulation
R code for data manipulationR code for data manipulation
R code for data manipulation
 

More from Ben Scofield

"Comics" Is Hard: Domain Modeling Challenges
"Comics" Is Hard: Domain Modeling Challenges"Comics" Is Hard: Domain Modeling Challenges
"Comics" Is Hard: Domain Modeling Challenges
Ben Scofield
 

More from Ben Scofield (20)

How to Be Awesome in 2.5 Steps
How to Be Awesome in 2.5 StepsHow to Be Awesome in 2.5 Steps
How to Be Awesome in 2.5 Steps
 
Building Cloud Castles - LRUG
Building Cloud Castles - LRUGBuilding Cloud Castles - LRUG
Building Cloud Castles - LRUG
 
Great Developers Steal
Great Developers StealGreat Developers Steal
Great Developers Steal
 
Thinking Small
Thinking SmallThinking Small
Thinking Small
 
Open Source: A Call to Arms
Open Source: A Call to ArmsOpen Source: A Call to Arms
Open Source: A Call to Arms
 
Ship It
Ship ItShip It
Ship It
 
Intentionality: Choice and Mastery
Intentionality: Choice and MasteryIntentionality: Choice and Mastery
Intentionality: Choice and Mastery
 
Mastery or Mediocrity
Mastery or MediocrityMastery or Mediocrity
Mastery or Mediocrity
 
Mind Control: Psychology for the Web
Mind Control: Psychology for the WebMind Control: Psychology for the Web
Mind Control: Psychology for the Web
 
NoSQL: Death to Relational Databases(?)
NoSQL: Death to Relational Databases(?)NoSQL: Death to Relational Databases(?)
NoSQL: Death to Relational Databases(?)
 
WindyCityRails - "Comics" Is Hard
WindyCityRails - "Comics" Is HardWindyCityRails - "Comics" Is Hard
WindyCityRails - "Comics" Is Hard
 
"Comics" Is Hard: Alternative Databases
"Comics" Is Hard: Alternative Databases"Comics" Is Hard: Alternative Databases
"Comics" Is Hard: Alternative Databases
 
Mind Control on the Web
Mind Control on the WebMind Control on the Web
Mind Control on the Web
 
How the Geeks Inherited the Earth
How the Geeks Inherited the EarthHow the Geeks Inherited the Earth
How the Geeks Inherited the Earth
 
And the Greatest of These Is ... Space
And the Greatest of These Is ... SpaceAnd the Greatest of These Is ... Space
And the Greatest of These Is ... Space
 
"Comics" Is Hard: Domain Modeling Challenges
"Comics" Is Hard: Domain Modeling Challenges"Comics" Is Hard: Domain Modeling Challenges
"Comics" Is Hard: Domain Modeling Challenges
 
And the Greatest of These Is ... Rack Support
And the Greatest of These Is ... Rack SupportAnd the Greatest of These Is ... Rack Support
And the Greatest of These Is ... Rack Support
 
Page Caching Resurrected
Page Caching ResurrectedPage Caching Resurrected
Page Caching Resurrected
 
Page Caching Resurrected: A Fairy Tale
Page Caching Resurrected: A Fairy TalePage Caching Resurrected: A Fairy Tale
Page Caching Resurrected: A Fairy Tale
 
All I Need to Know I Learned by Writing My Own Web Framework
All I Need to Know I Learned by Writing My Own Web FrameworkAll I Need to Know I Learned by Writing My Own Web Framework
All I Need to Know I Learned by Writing My Own Web Framework
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

The State of NoSQL