Successfully reported this slideshow.

Informix SQL & NoSQL -- for Chat with the labs on 4/22

900 views

Published on

Informix SQL and NoSQL

Published in: Software, Technology
  • Be the first to comment

  • Be the first to like this

Informix SQL & NoSQL -- for Chat with the labs on 4/22

  1. 1. IBM Informix for SQL & NoSQL Keshav Murthy rkeshav@us.ibm.com Architect, IBM Informix
  2. 2. 2
  3. 3. 3  Applications must support mobile − Interoperate with modern applications with agility − Enterprise infrastructure  Ability to scale to big data − Commodity hardware and software − Use case are driving big data − Data base layer meets web app requirements  Strategy: more interactions with customers − Systems of engagement needed! − 71% CIOs see move toward social/digital collaboration − New class of applications are based on NoSQL Global C-suite Study, http://www-935.ibm.com/services/us/en/c-suite/csuitestudy2013/ Explosion of mobile devices Business Trends Driving NoSQL Adoption
  4. 4. 4 SQL NoSQL Define Schema first Write the program first Relational Key-value, Document, column family, graph and text Changing schema is hard Assumes dynamic schema Scale-up Scale-out ACID consistency BASE consistency Transactions No Transactions SQL Proprietary API; Sometimes has the “spirit” of SQL
  5. 5. 5 Martin Fowler says: “aggregate-oriented” What you're most likely to access as a unit. Key Value Store  Couchbase  Riak  Citrusleaf  Redis  BerkeleyDB  Membrain  ... Document  MongoDB  CouchDB  RavenDB  Couchbase  ... Graph  OrientDB  DEX  Neo4j  GraphBase  ... Column  HBase  Hypertable  Cassandra  ... NoSQL Landscape
  6. 6. Informix NoSQL Applications on Informix  New Listener supports MongoDB drivers  Use the same driver for Informix & MongoDB MongoDB native Client MongoDB native Client MongoDB web browser MongoDB web browser MobileMobile Applications MongoDB Wire Protocol InformixMongoDB driver MongoDB driver 6 Informix
  7. 7. Application Development Tools The MEAN Stack
  8. 8. Basic Translation Terms/Concepts 8 Mongo/NoSQL Terms Traditional SQL Terms Database Database Collection Table Document Row Field Column Index Index {"name":"John","age":21, state:”CA”} {"name":"Tim","age":28, Provence: “BC”} {"name":"Scott","age":30, country: “UK”, status:1} Name Age John 21 Tim 28 Scott 30 Collection Document Key Value Table Row
  9. 9. Informix JSON Store Benefits  Row locking on the individual JSON document  Large documents, up to 2GB maximum size  Ability to compress documents  Ability to intelligently cache commonly used documents  Use existing storage options and management tools. 9
  10. 10. •Supports B-Tree indexes on any key-value pairs. •Typed indices could be on simple basic type (int, decimal,) •Type-less indices could be created on BSON and use BSON type comparison •Translate ensureIndex() to CREATE INDEX •Translate dropIndex() to DROP INDEX Indexing 10 Mongo Operation SQL Operation db.customers.ensureIndex( {orderDate:1, zip:-1}) CREATE INDEX IF NOT EXISTS v_customer_2 ON customer (bson_extract(data,‘orderDate') ASC, bson_extract(data,‘zip') DESC) USING BSON db.customers.ensureIndex( {orderDate:1},{unique:true}) CREATE UNIQUE INDEX IF NOT EXISTS v_customer_3 ON customer (bson_extract(data,'c1') ASC USING BSON
  11. 11. scale out (sharding) + High Availability App Server Mongo Driver Listener JDBC Enterprise repliation + Flexible Grid App Server Mongo Driver Listener JDBC App Server Mongo Driver Listener JDBC App Server Mongo Driver Listener JDBC Informix/1 Primary Informix/1 SDS/HDR Informix/1 RSS Informix/2 Primary Informix/2 SDS/HDR Informix/2 RSS Informix/3 Primary Informix/3 SDS/HDR Informix/3 RSS Informix/4 Primary Informix/4 SDS/HDR Informix/4 RSS Informix/5 Primary Informix/5 SDS/HDR Informix/5 RSS Informix/6 Primary Informix/6 SDS/HDR Informix/6 RSS
  12. 12. 12 2 Explosion of mobile devices – gaming and social apps Advertising: serving ads and real-time bidding Social networking, online communities E-commerce, social commerce Machine data and real-time operational decisions Smart Devices NoSQL + Relational Internet of Things
  13. 13. Hybrid Data Access: relational tables & JSON Collections Relational Table JSON Collections SQL API Standard ODBC, JDBC, .NET, OData, etc. Language SQL. MongoDB API (NoSQL) Mongo APIs for Java, Javascript, C++, C#, etc. Direct SQL Access. Dynamic Views Row types Mongo APIs for Java, Javascript, C++, C#, etc.
  14. 14. Hybrid Data Access 14 SQL Tables JSON Collections TimeSeries MQ Series SQL APIs JDBC, ODBC SQL APIs JDBC, ODBC Informix IWA – BLU Acceleration GenBSON: SQL to BSON Text search Spatial MongoDB Drivers MongoDB Drivers Timeseries(JSON)
  15. 15. Mongo Application IBM Wire Listener IDXs Logs Enterprise replication + Flexible Grid + Sharding Distributed Queries Database Tables Tables IDXs Relational TablesRelational Tables JSON CollectionsJSON Collections SELECT bson_get(bson, ‘{}’) FROM customer WHERE bson_value_lvarchar(bson,‘state’)=“MO” SELECT bson_get(bson, ‘{}’) FROM customer WHERE bson_value_lvarchar(bson,‘state’)=“MO” db.customer.find({state:”MO”})db.customer.find({state:”MO”}) db.partners.find({state:”CA”})db.partners.find({state:”CA”}) SELECT * FROM partners WHERE state=“CA”SELECT * FROM partners WHERE state=“CA” CustomerCustomer partnerspartners JSON JSON Access RelationalAccess JSON MongoAPI Accessing NoSQL & Relational Data
  16. 16. Tables JDBC connections IDXs Logs Enterprise replication + Flexible Grid Distributed Queries Database Tables Tables IDXs Relational TablesRelational Tables JSON CollectionsJSON Collections SELECT bson.customer::JSON,bson.state::lvarchar FROM customer WHERE bson.state::lvarchar = “MO” SELECT bson.customer::JSON,bson.state::lvarchar FROM customer WHERE bson.state::lvarchar = “MO” Select * from patners where state = “CA”;Select * from patners where state = “CA”; CustomerCustomer partnerspartners Access RelationalAccess JSON SQL Applications SQL Accessing NoSQL & Relational Data SQL TypesSQL Types
  17. 17. Informix for NoSQL and SQL Access consistent data from its source Avoid ETL, continuous data sync and conflicts. Exploit the power of SQL, MongoAPI seamlessly Exploit the power of RDBMS technologies in MongoAPI: − Cost based Optimizer & power of SQL − Spatial indices, Lucene text indices, and more. Access all your data thru any interface: MongoAPI & SQL Store data in one place and efficiently transform and use them on demand. Existing SQL based tools and APIs can access new data in JSON

×