trouble with nosql_dbs
TRANSCRIPT
Iran Hutchinson
I work for InterSystems who drives the new http://globalsdb.org NoSQL project.
Email: [email protected]
Twitter: #iranicSkype: chatwithiran
… NoSQL Databases Understanding what they are Understanding how to leverage their
strengths Understanding their weaknesses Staying away from hype and religious
wars Fighting your developer demon
Edgar Frank “Ted” Codd Known for 12 Rules (0 ~ 12) for Relational Data
Systems
Rule 1: The information Rule All information is represented in 1 and
only 1 way, namely by values in column positions within rows of tables
Rule 12: The no subversion Rule If the system provides a low-level
(record-at-a-time) interface, then that interface cannot be used to subvert the system i.e. relational security or integrity constraints.
Simple APIs Java Example: Document.save(myObject)
Seamless language integration No impedance mismatch
Designed to be horizontally scalable (elastic)
Flexible data model Majority free and/or Open Source Free and Commercial production
support
ProvenAvailable talent / Well-knownAD-Hoc queryingScalable (limits?)Free and Commercial production
support
Interface for data accessLimited horizontal scalability? Impedance mismatchesProgramming model In-flexible data model
Does not include the underlying data structure.
B-tree and B+-trees can be fast and efficient
The relational model + SQL can limit B-trees
Class of data management systems inherently Non-relational Distributed Horizontally scalable With optional schemas Providing simple APIs
Term Not-Only-SQL recently embraced
Dave Kellog’s Blog Post
No to ACIDNo to the impedance mismatch with
SQLDealing with Big Data and Web ScaleHigh prices from RDBMS vendorsUse commodity hardwareFlexible data models It’s a cool movement ….
NoRemember MUMPS?
SET ^Car("Door","Color")="BLUE”Remember Multi-value/PICK
MATWRITE array.variable ON file.variable,id. ….
Ever heard of the NoSQL RDB?
This depends on your use case.Example
http://www.mongodb.org/display/DOCS/Use+Cases
Compare your problems to others.Example:
http://wiki.apache.org/hadoop/PoweredBy
http://nosql-database.org/ lists 122 today.
Depends on your model selection.Most likely choose well-known
project.Don’t forget about shared risk!
Some solutions have no queryingWhen available query languages
differLack of general AD-Hoc querying –
“no” SQLNOTE: Toad for Cloud
SkillsData ModelData formatToolsStandards?
Some databases are not as proven Incomplete NoSQL solutions
You write a larger data management tier You maintain your business code and
infrastructure code You have to customize management and
deployment technology and procedures
Know your applicationDon’t forget the past lessonsConsider a hybrid approachFight the desire to Roll-Your-Own-DBStart small but significant
Two Systems NoSQL + SQL/RDBMS
Updates Real-time Asynchronous or Batch
NoSQLNoSQL SQL/RDBMS
SQL/RDBMS
Data Mapper
/ Translat
or
Data Mapper
/ Translat
or
One system does both NoSQL and SQL
InterSystems Caché supports SQL and NoSQL
Production NoSQL for 20+ yearsAPIs for .NET, Java, Perl, Python, etc.Expanding paradigms for more use
cases.Comes the closest to approach 2
Core of InterSystems CachéFree for development and productionSimple APIs Java and JavaScripthttp://globalsdb.orgSponsored by InterSystems
Over time I think we will see NoSQL features in mainstream
databases NoSQL offerings by more commercial
companies Dominant open source / free NoSQL
projects New definitions of enterprise databases
Hadoop/HbaseCassandraMongoDBCouchDBRiakCouchbaseNeo4J
InterSystems CachéSimpleDBAzure Table StorageGoogle App Engine Data StorageMark Logic Server Infinite GraphRiak (has open source version)Berkely DB