Trouble with nosql_dbs

26
Iran Hutchinson

Transcript of Trouble with nosql_dbs

Page 1: Trouble with nosql_dbs

Iran Hutchinson

Page 2: Trouble with nosql_dbs

I work for InterSystems who drives the new http://globalsdb.org NoSQL project.

Email: [email protected]

Twitter: #iranicSkype: chatwithiran

Page 3: Trouble with nosql_dbs

… 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

Page 4: Trouble with nosql_dbs

Edgar Frank “Ted” Codd Known for 12 Rules (0 ~ 12) for Relational Data

Systems

Page 5: Trouble with nosql_dbs

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.

Page 6: Trouble with nosql_dbs

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

Page 7: Trouble with nosql_dbs

ProvenAvailable talent / Well-knownAD-Hoc queryingScalable (limits?)Free and Commercial production

support

Page 8: Trouble with nosql_dbs

Interface for data accessLimited horizontal scalability? Impedance mismatchesProgramming model In-flexible data model

Page 9: Trouble with nosql_dbs

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

Page 10: Trouble with nosql_dbs

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

Page 11: Trouble with nosql_dbs

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 ….

Page 12: Trouble with nosql_dbs

NoRemember MUMPS?

SET ^Car("Door","Color")="BLUE”Remember Multi-value/PICK

MATWRITE array.variable ON file.variable,id. ….

Ever heard of the NoSQL RDB?

Page 13: Trouble with nosql_dbs
Page 14: Trouble with nosql_dbs

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

Page 15: Trouble with nosql_dbs

http://nosql-database.org/ lists 122 today.

Depends on your model selection.Most likely choose well-known

project.Don’t forget about shared risk!

Page 16: Trouble with nosql_dbs

Some solutions have no queryingWhen available query languages

differLack of general AD-Hoc querying –

“no” SQLNOTE: Toad for Cloud

Page 17: Trouble with nosql_dbs

SkillsData ModelData formatToolsStandards?

Page 18: Trouble with nosql_dbs

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

Page 19: Trouble with nosql_dbs

Know your applicationDon’t forget the past lessonsConsider a hybrid approachFight the desire to Roll-Your-Own-DBStart small but significant

Page 20: Trouble with nosql_dbs

Two Systems NoSQL + SQL/RDBMS

Updates Real-time Asynchronous or Batch

NoSQLNoSQL SQL/RDBMS

SQL/RDBMS

Data Mapper

/ Translat

or

Data Mapper

/ Translat

or

Page 21: Trouble with nosql_dbs

One system does both NoSQL and SQL

Page 22: Trouble with nosql_dbs

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

Page 23: Trouble with nosql_dbs

Core of InterSystems CachéFree for development and productionSimple APIs Java and JavaScripthttp://globalsdb.orgSponsored by InterSystems

Page 24: Trouble with nosql_dbs

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

Page 25: Trouble with nosql_dbs

Hadoop/HbaseCassandraMongoDBCouchDBRiakCouchbaseNeo4J

Page 26: Trouble with nosql_dbs

InterSystems CachéSimpleDBAzure Table StorageGoogle App Engine Data StorageMark Logic Server Infinite GraphRiak (has open source version)Berkely DB