SlideShare a Scribd company logo
1 of 42
Connecting your .NET
Applications to NoSQL
Databases
- MongoDB and Cassandra
30th June 2016
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.2
Product Owner ODBC, JDBC & ADO.NET Drivers,
Progress DataDirect
https://www.progress.com/documentation/datadirect-connectors
Avadhoot.Kulkarni@progress.com
Avadhoot Kulkarni
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.3
Agenda
 What is NoSQL?
• Understanding Schema Design
• Benefits
• Implementations
 Different ways of Connecting to NoSQL Data
• Client APIs
• REST/SOAP APIs
• SQL Based Connectivity, Progress DataDirect Drivers
Understanding Schema Design
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.5
What is NoSQL?
Sample JSON Document (MongoDB):
{ name: “sue”, age: 26, status: “A”, groups: [“news”, “sports”]}
Relational database design
focuses on data storage
NoSQL database design
focuses on data use
Key Value Store (Cassandra):
NoSQL RDBMS
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.6
Schema Design Comparison
Relational Design NoSQL Document Design
{ user: {
first: “Brody,
last: “Messmer”, ...
}
purchases: [
{ symbol: “PRGS”, date: “2013-02-13”, price: 23.50, qty: 100,
...},
{ symbol: “PRGS”, date: “2012-06-12”, price: 20.57, qty: 100,
...},
...
]
}
...
user_id first last …
123456 Brody Messmer …
…
user_id symbol date price qty …
123456 PRGS 2013-02-13 23.50 100 …
123456 PRGS 2012-06-12 20.57 100 …
…
Table: users
Table: purchases
A little Humor…..
Benefits of NoSQL
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.9
Benefits of NoSQL
High Performance
• Data can easily be partitioned across multiple nodes
• Low default isolation levels for both read and write operations
• Object models (Denormalized schema design) reduce need for expensive joins
• Typical index support, even on fields within embedded documents and arrays
High Availability & Fault Tolerance
• Replica sets / nodes provide automatic failover and data redundancy
Easily Scale Up or Scale Out
• Capable of running on commodity hardware
Cost
NoSQL Implementations
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.11
NoSQL Implementations
MongoDB
Type: JSON Document Store
Query Language: API / PSQL
Typical Use Case:
• Web Applications (especially when
built with JavaScript)
Additional Benefits:
• Node.js / Web friendly -- JSON
• Dynamic schema
Apache Cassandra
Type: Key Value Store
Query Language: CQL
Typical Use Case:
• Real-time analytic workloads
• Heavy Writes, with desire for
reporting
Additional Benefits:
• Especially High Availability with
CAP focus on Availability and
Partition Tolerance
MarkLogic
Type: Multi-Model
Query Language: API
Typical Use Case:
• Search
• Recommendation Engine
Additional Benefits:
• Handles any types of data
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.12
Ways to Access NoSQL Data
Client SDK
REST/SOAP APIs
SQL Connectivity
Connectivity using Client API
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.14
Client API Based Connectivity
Almost every NoSQL database has development SDKs to allow applications to integrate
with its data.
 Pros:
• Easiest and quickest way to develop application
 Cons:
• Functionality may be limited,
• Creates dependency on vendor SDK
• Learning the SDK is vendor specific learning
 When to Use:
• Time critical deliveries,
• Vendor specific Integration is acceptable
Example: Client SDK Connectivity to MongoDB
Components Used for the Demo Sample
MongoDB C# Driver
• Nuget Package Link
https://www.nuget.org/packages/mongocsharpdriver/
• Getting Started
https://docs.mongodb.com/getting-started/csharp/client/
Example: Client SDK Connectivity to MongoDB
What does the sample do?
• Insert object of type MyClass – Square
• Insert object of type MyClass – Circle
• Insert object of type SubClass – SubClass
• Count All Objects which Has Corners > 1
• Count All Objects which Has Ratio > 1
Example: Client SDK Connectivity to MongoDB
Example: Client SDK Connectivity to Cassandra
Components Used for the Demo Sample
Cassandra C# Driver
 Nuget Package Link
https://www.nuget.org/packages/CassandraCSharpDriver/
 Getting Started
https://academy.datastax.com/resources/getting-started-apache-
cassandra-and-c-net
Example: Client SDK Connectivity to Apache Cassandra
What does the sample do?
• CREATE the USERS Table
• Insert User – Salman
• Insert Another User - Shahrukh
• Select a User using Where Clause Filter Condition
Example: Client SDK Connectivity to Cassandra
Example: Client SDK Connectivity to Cassandra
REST/SOAP API Based
Connectivity
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.24
REST/SOAP API Based Connectivity
Some NoSQL vendors expose their low level APIs over REST and/or SOAP. Few provide
this connectivity out-of-the box i.e. CouchDB; While few need extra setup, e.g.
Cassandra & MongoDB
 Pros:
• Usually more flexible and performant than SDK Access
• Small vendor specific learning compared to Client SDK
 Cons:
• More complex to integrate compared to SDK
 When to Use:
• Performance is Key
• Looking integration which is less vendor dependent
REST API Connectivity to MongoDB
There are Multiple REST Interfaces for MongoDB
• https://docs.mongodb.com/ecosystem/tools/http-interfaces/
Building First Mongo DB Application using REST
• https://www.mongodb.com/blog/post/building-your-first-application-
mongodb-creating-rest-api-using-mean-stack-part-1
REST APIs for MongoDB CRUD Operations
• http://www.codeproject.com/Articles/1071823/RESTful-WEB-API-for-
CRUD-operations-in-MongoDB
REST API Connectivity to Cassandra
Apache-Meos REST API Reference
• https://mesosphere.github.io/cassandra-mesos/docs/rest-api.html
Writing your first client
• https://docs.datastax.com/en/developer/nodejs-driver/1.0/nodejs-
driver/quick_start/qsQuickstart.html
RESTful APIs using spring Boot and Cassandra
• http://myjourneyonjava.blogspot.in/2015/08/restful-api-using-spring-boot-
and.html
SQL Based Connectivity
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.28
SQL Based Connectivity
There are few third party vendors like Progress DataDirect, who provides SQL standard
based drivers for NoSQL Data sources.
 Pros:
• No new learning, we all know SQL and ODBC/JDBC/ADO.NET
• Easy to integrate with BI/Analytics tool which expect xDBC/ADO.NET Integration
 Cons:
• Not a natural fit for the Data Mapping.
• Some operations could become very slow because of limitations of underlying APIs/Protocols
 When to Use:
• Third party BI/Analytical tool integration
• Designing Applications which are vendor agnostic
• Data Sync/Integration applications with RDBMS DataSources
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.29
SQL Connectivity to NoSQL Databases Is Hard
Cassandra MongoDB Challenges
Non-Standard Query Language
Lack of Common RDBMS Functionality
• No Support for Joins
• Limited support for filters, aggregates, etc
• Sorting is not ANSI SQL Compliant
• No ACID Transactions
• Unique Authentication
Non-relational Schema
• Heavy use of complex types (denormalized data model)
• Self-describing schema – Can only discover columns by selecting data
• Primary / Foreign Keys maintained by apps, not the database
Frequent Release Cadence
Example: SQL Connectivity to MongoDB
Progress DataDirect ODBC Driver for MongoDB
 Download Page :
https://www.progress.com/connectors/mongodb
 Documentation:
https://documentation.progress.com/output/DataDirect/odbcmongo
help/index.html
Example: SQL Connectivity to MongoDB
What does the sample do?
• Uses ADO.NET ODBC Bridge to Progress DataDirect MongoDB ODBC
Driver
• Application clears all rows in the MyClass Collection (Table).
• Insert object of type MyClass – Square
• Insert object of type MyClass – Circle
• Insert object of type SubClass – SubClass
• Count All Objects which Has Corners > 1
• Count All Objects which Has Ratio > 1
Example: SQL Connectivity to MongoDB
Example: SQL Connectivity to MongoDB
Example: SQL Connectivity to Cassandra
Progress DataDirect ODBC Driver for Apache Cassandra <Preview>
 Download Page :
https://www.progress.com/connectors/apache-cassandra
 Documentation:
https://documentation.progress.com/output/DataDirect/jdbccassandrahe
lp/
Example: SQL Connectivity to Apache Cassandra
What does the sample do?
• Uses .NET ODBC Bridge to Progress DataDirect Apache Cassandra ODBC
Driver
• Delete all the rows from USERS Table
• Insert User – Salman
• Insert Another User - Shahrukh
• Select a User using Where Clause Filter Condition
Example: SQL Connectivity to Cassandra
Example: SQL Connectivity to Cassandra
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.38
Collection Name: stock
{ symbol: “PRGS”,
purchases:[
{date: ISODate(“2013-02-13T16:58:36Z”), price: 23.50, qty: 100},
{date: ISODate(“2012-06-12T08:00:01Z”), price: 20.57, qty: 100,
sellDate: ISODate(“2013-08-16T12:34:58Z”)}, sellPrice: 24.60}
]
}
“Normalizing” the NoSQL Data Model
Table Name: stock
_id symbol
1 PRGS
stock_id Date Price qty sellDate sellPrice
1 2013-02-13
16:58:36
23.50 100 NULL NULL
1 2012-06-12
08:00:01
20.57 100 2013-08-16
12:34:58
24.60
Table Name: stock_purchases
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.39
“Normalizing” the NoSQL Data Model
The Benefits:
 Re-use of existing skills (SQL, Joins, etc.)
• Exposing complex types using concepts familiar to those savvy
with RDBMS
 As arrays/lists/maps/sets grow, table definitions remain constant
 Simplified / Narrower table definitions
 Joins across parent/child tables result in a single query to the database.
In other words, there’s no performance penalty.
 Data in arrays can be sorted and/or aggregated via SQL
NoSQL is non-standard, non-relational way of storing information.
Client SDK API based access is the easiest way to reach NoSQL data from applications,
though it might be limited, creates dependency on the SDK libraries and has lot of data
source specific learning.
REST APIs based access is a bit more complex, but provides more flexibility in terms of its
usage. The API knowledge is data-source specific; If written good code, should perform
better than client SDK.
SQL based connectivity, no new data source specific learnings, easy integration with
third party BI/Analytics tools which expects SQL connectivity. As it’s not the natural way of
connectivity to NoSQL, Data Normalization is required. Some SQL connectivity solutions
like Progress DataDirect takes care of this transparent to the application.
Normalisation techniques should be the key criteria for choosing the right SQL
Connectivity solution for NoSQL DataSources.
Recap
Questions?
Connecting your .Net Applications to NoSQL Databases - MongoDB & Cassandra

More Related Content

What's hot

Oracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data Streaming
Oracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data StreamingOracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data Streaming
Oracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data StreamingMichael Rainey
 
App301 Implement a Data Access Layer with Ent Lib
App301 Implement a Data Access Layer with Ent LibApp301 Implement a Data Access Layer with Ent Lib
App301 Implement a Data Access Layer with Ent Libmcgurk
 
Out With the Old, in With the Open-source: Brainshark's Complete CMS Migration
Out With the Old, in With the Open-source: Brainshark's Complete CMS MigrationOut With the Old, in With the Open-source: Brainshark's Complete CMS Migration
Out With the Old, in With the Open-source: Brainshark's Complete CMS MigrationAcquia
 
Architecting a Next Generation Data Platform – Strata Singapore 2017
Architecting a Next Generation Data Platform – Strata Singapore 2017Architecting a Next Generation Data Platform – Strata Singapore 2017
Architecting a Next Generation Data Platform – Strata Singapore 2017Jonathan Seidman
 
The Roadmap for SQL Server 2019
The Roadmap for SQL Server 2019The Roadmap for SQL Server 2019
The Roadmap for SQL Server 2019Amit Banerjee
 
Building a Self-Service Hadoop Platform at Linkedin with Azkaban
Building a Self-Service Hadoop Platform at Linkedin with AzkabanBuilding a Self-Service Hadoop Platform at Linkedin with Azkaban
Building a Self-Service Hadoop Platform at Linkedin with AzkabanDataWorks Summit
 
Avoiding.the.pitfallsof.oracle.migration.2013
Avoiding.the.pitfallsof.oracle.migration.2013Avoiding.the.pitfallsof.oracle.migration.2013
Avoiding.the.pitfallsof.oracle.migration.2013EDB
 
Spark and scala reference architecture
Spark and scala reference architectureSpark and scala reference architecture
Spark and scala reference architectureAdrian Tanase
 
Sql server 2019 new features
Sql server 2019 new featuresSql server 2019 new features
Sql server 2019 new featuresGeorge Walters
 
Architecting a Next Gen Data Platform – Strata London 2018
Architecting a Next Gen Data Platform – Strata London 2018Architecting a Next Gen Data Platform – Strata London 2018
Architecting a Next Gen Data Platform – Strata London 2018Jonathan Seidman
 
The rise of microservices - containers and orchestration
The rise of microservices - containers and orchestrationThe rise of microservices - containers and orchestration
The rise of microservices - containers and orchestrationAndrew Morgan
 
Ranger admin dev overview
Ranger admin dev overviewRanger admin dev overview
Ranger admin dev overviewTushar Dudhatra
 
SQL Server 2017 Machine Learning Services
SQL Server 2017 Machine Learning ServicesSQL Server 2017 Machine Learning Services
SQL Server 2017 Machine Learning ServicesSorin Peste
 
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB
 
Organizational compliance and security SQL 2012-2019 by George Walters
Organizational compliance and security SQL 2012-2019 by George WaltersOrganizational compliance and security SQL 2012-2019 by George Walters
Organizational compliance and security SQL 2012-2019 by George WaltersGeorge Walters
 
Gs08 modernize your data platform with sql technologies wash dc
Gs08 modernize your data platform with sql technologies   wash dcGs08 modernize your data platform with sql technologies   wash dc
Gs08 modernize your data platform with sql technologies wash dcBob Ward
 
SQL Server 2019 Big Data Cluster
SQL Server 2019 Big Data ClusterSQL Server 2019 Big Data Cluster
SQL Server 2019 Big Data ClusterMaximiliano Accotto
 

What's hot (20)

Oracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data Streaming
Oracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data StreamingOracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data Streaming
Oracle GoldenGate and Apache Kafka A Deep Dive Into Real-Time Data Streaming
 
App301 Implement a Data Access Layer with Ent Lib
App301 Implement a Data Access Layer with Ent LibApp301 Implement a Data Access Layer with Ent Lib
App301 Implement a Data Access Layer with Ent Lib
 
Out With the Old, in With the Open-source: Brainshark's Complete CMS Migration
Out With the Old, in With the Open-source: Brainshark's Complete CMS MigrationOut With the Old, in With the Open-source: Brainshark's Complete CMS Migration
Out With the Old, in With the Open-source: Brainshark's Complete CMS Migration
 
Architecting a Next Generation Data Platform – Strata Singapore 2017
Architecting a Next Generation Data Platform – Strata Singapore 2017Architecting a Next Generation Data Platform – Strata Singapore 2017
Architecting a Next Generation Data Platform – Strata Singapore 2017
 
The Roadmap for SQL Server 2019
The Roadmap for SQL Server 2019The Roadmap for SQL Server 2019
The Roadmap for SQL Server 2019
 
Building a Self-Service Hadoop Platform at Linkedin with Azkaban
Building a Self-Service Hadoop Platform at Linkedin with AzkabanBuilding a Self-Service Hadoop Platform at Linkedin with Azkaban
Building a Self-Service Hadoop Platform at Linkedin with Azkaban
 
Spark mhug2
Spark mhug2Spark mhug2
Spark mhug2
 
Lambda-less Stream Processing @Scale in LinkedIn
Lambda-less Stream Processing @Scale in LinkedIn Lambda-less Stream Processing @Scale in LinkedIn
Lambda-less Stream Processing @Scale in LinkedIn
 
Avoiding.the.pitfallsof.oracle.migration.2013
Avoiding.the.pitfallsof.oracle.migration.2013Avoiding.the.pitfallsof.oracle.migration.2013
Avoiding.the.pitfallsof.oracle.migration.2013
 
Spark and scala reference architecture
Spark and scala reference architectureSpark and scala reference architecture
Spark and scala reference architecture
 
Sql server 2019 new features
Sql server 2019 new featuresSql server 2019 new features
Sql server 2019 new features
 
Architecting a Next Gen Data Platform – Strata London 2018
Architecting a Next Gen Data Platform – Strata London 2018Architecting a Next Gen Data Platform – Strata London 2018
Architecting a Next Gen Data Platform – Strata London 2018
 
The rise of microservices - containers and orchestration
The rise of microservices - containers and orchestrationThe rise of microservices - containers and orchestration
The rise of microservices - containers and orchestration
 
Ranger admin dev overview
Ranger admin dev overviewRanger admin dev overview
Ranger admin dev overview
 
SQL Server 2017 Machine Learning Services
SQL Server 2017 Machine Learning ServicesSQL Server 2017 Machine Learning Services
SQL Server 2017 Machine Learning Services
 
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to Postgres
 
Organizational compliance and security SQL 2012-2019 by George Walters
Organizational compliance and security SQL 2012-2019 by George WaltersOrganizational compliance and security SQL 2012-2019 by George Walters
Organizational compliance and security SQL 2012-2019 by George Walters
 
Exploring sql server 2016
Exploring sql server 2016Exploring sql server 2016
Exploring sql server 2016
 
Gs08 modernize your data platform with sql technologies wash dc
Gs08 modernize your data platform with sql technologies   wash dcGs08 modernize your data platform with sql technologies   wash dc
Gs08 modernize your data platform with sql technologies wash dc
 
SQL Server 2019 Big Data Cluster
SQL Server 2019 Big Data ClusterSQL Server 2019 Big Data Cluster
SQL Server 2019 Big Data Cluster
 

Similar to Connecting your .Net Applications to NoSQL Databases - MongoDB & Cassandra

SQL Access to NoSQL
SQL Access to NoSQLSQL Access to NoSQL
SQL Access to NoSQLProgress
 
Presto for the Enterprise @ Hadoop Meetup
Presto for the Enterprise @ Hadoop MeetupPresto for the Enterprise @ Hadoop Meetup
Presto for the Enterprise @ Hadoop MeetupWojciech Biela
 
A BASILar Approach for Building Web APIs on top of SPARQL Endpoints
A BASILar Approach for Building Web APIs on top of SPARQL EndpointsA BASILar Approach for Building Web APIs on top of SPARQL Endpoints
A BASILar Approach for Building Web APIs on top of SPARQL EndpointsEnrico Daga
 
Apache Arrow: Open Source Standard Becomes an Enterprise Necessity
Apache Arrow: Open Source Standard Becomes an Enterprise NecessityApache Arrow: Open Source Standard Becomes an Enterprise Necessity
Apache Arrow: Open Source Standard Becomes an Enterprise NecessityWes McKinney
 
Intro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with sparkIntro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with sparkAlex Zeltov
 
Elevate MongoDB with ODBC/JDBC
Elevate MongoDB with ODBC/JDBCElevate MongoDB with ODBC/JDBC
Elevate MongoDB with ODBC/JDBCMongoDB
 
Beyond Relational
Beyond RelationalBeyond Relational
Beyond RelationalLynn Langit
 
AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)
AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)
AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)Amazon Web Services
 
Solving Enterprise Data Challenges with Apache Arrow
Solving Enterprise Data Challenges with Apache ArrowSolving Enterprise Data Challenges with Apache Arrow
Solving Enterprise Data Challenges with Apache ArrowWes McKinney
 
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part20812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2Raul Chong
 
Developing Enterprise Consciousness: Building Modern Open Data Platforms
Developing Enterprise Consciousness: Building Modern Open Data PlatformsDeveloping Enterprise Consciousness: Building Modern Open Data Platforms
Developing Enterprise Consciousness: Building Modern Open Data PlatformsScyllaDB
 
BI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache CassandraBI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache CassandraVictor Coustenoble
 
Apache Cassandra Lunch 119: Desktop GUI Tools for Apache Cassandra
Apache Cassandra Lunch 119: Desktop GUI Tools for Apache CassandraApache Cassandra Lunch 119: Desktop GUI Tools for Apache Cassandra
Apache Cassandra Lunch 119: Desktop GUI Tools for Apache CassandraAnant Corporation
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresqlbotsplash.com
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAmazon Web Services
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaGuido Schmutz
 

Similar to Connecting your .Net Applications to NoSQL Databases - MongoDB & Cassandra (20)

SQL Access to NoSQL
SQL Access to NoSQLSQL Access to NoSQL
SQL Access to NoSQL
 
LoopbackJS the intro
LoopbackJS the introLoopbackJS the intro
LoopbackJS the intro
 
Presto for the Enterprise @ Hadoop Meetup
Presto for the Enterprise @ Hadoop MeetupPresto for the Enterprise @ Hadoop Meetup
Presto for the Enterprise @ Hadoop Meetup
 
A BASILar Approach for Building Web APIs on top of SPARQL Endpoints
A BASILar Approach for Building Web APIs on top of SPARQL EndpointsA BASILar Approach for Building Web APIs on top of SPARQL Endpoints
A BASILar Approach for Building Web APIs on top of SPARQL Endpoints
 
Apache Arrow: Open Source Standard Becomes an Enterprise Necessity
Apache Arrow: Open Source Standard Becomes an Enterprise NecessityApache Arrow: Open Source Standard Becomes an Enterprise Necessity
Apache Arrow: Open Source Standard Becomes an Enterprise Necessity
 
Intro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with sparkIntro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with spark
 
Ml2
Ml2Ml2
Ml2
 
The Decoupled CMS in Financial Services
The Decoupled CMS in Financial ServicesThe Decoupled CMS in Financial Services
The Decoupled CMS in Financial Services
 
Elevate MongoDB with ODBC/JDBC
Elevate MongoDB with ODBC/JDBCElevate MongoDB with ODBC/JDBC
Elevate MongoDB with ODBC/JDBC
 
Beyond Relational
Beyond RelationalBeyond Relational
Beyond Relational
 
AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)
AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)
AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)
 
Solving Enterprise Data Challenges with Apache Arrow
Solving Enterprise Data Challenges with Apache ArrowSolving Enterprise Data Challenges with Apache Arrow
Solving Enterprise Data Challenges with Apache Arrow
 
IBM - Introduction to Cloudant
IBM - Introduction to CloudantIBM - Introduction to Cloudant
IBM - Introduction to Cloudant
 
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part20812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2
0812 2014 01_toronto-smac meetup_i_os_cloudant_worklight_part2
 
Developing Enterprise Consciousness: Building Modern Open Data Platforms
Developing Enterprise Consciousness: Building Modern Open Data PlatformsDeveloping Enterprise Consciousness: Building Modern Open Data Platforms
Developing Enterprise Consciousness: Building Modern Open Data Platforms
 
BI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache CassandraBI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache Cassandra
 
Apache Cassandra Lunch 119: Desktop GUI Tools for Apache Cassandra
Apache Cassandra Lunch 119: Desktop GUI Tools for Apache CassandraApache Cassandra Lunch 119: Desktop GUI Tools for Apache Cassandra
Apache Cassandra Lunch 119: Desktop GUI Tools for Apache Cassandra
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresql
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
 

More from Lohith Goudagere Nagaraj

Hybrid Mobile App Development With Cordova
Hybrid Mobile App Development With CordovaHybrid Mobile App Development With Cordova
Hybrid Mobile App Development With CordovaLohith Goudagere Nagaraj
 
Even Quicker Development with Xamarin Forms Using Telerik UI for Xamarin
Even Quicker Development with Xamarin Forms Using Telerik UI for XamarinEven Quicker Development with Xamarin Forms Using Telerik UI for Xamarin
Even Quicker Development with Xamarin Forms Using Telerik UI for XamarinLohith Goudagere Nagaraj
 
You Know Angular 2, You Know Native Mobile App Development
You Know Angular 2, You Know Native Mobile App DevelopmentYou Know Angular 2, You Know Native Mobile App Development
You Know Angular 2, You Know Native Mobile App DevelopmentLohith Goudagere Nagaraj
 
Seamless Access to Data from BI Tools using DataDirect Cloud
Seamless Access to Data from BI Tools using DataDirect CloudSeamless Access to Data from BI Tools using DataDirect Cloud
Seamless Access to Data from BI Tools using DataDirect CloudLohith Goudagere Nagaraj
 
The Bleeding Edge - Whats New in Angular 2
The Bleeding Edge - Whats New in Angular 2The Bleeding Edge - Whats New in Angular 2
The Bleeding Edge - Whats New in Angular 2Lohith Goudagere Nagaraj
 
Introduction to UWP - Universal Windows Platform Application Development
Introduction to UWP - Universal Windows Platform Application DevelopmentIntroduction to UWP - Universal Windows Platform Application Development
Introduction to UWP - Universal Windows Platform Application DevelopmentLohith Goudagere Nagaraj
 
Cross Platform Web Applications Using ASP.NET Core 1.0
Cross Platform Web Applications Using ASP.NET Core 1.0Cross Platform Web Applications Using ASP.NET Core 1.0
Cross Platform Web Applications Using ASP.NET Core 1.0Lohith Goudagere Nagaraj
 
Build Leaner, Faster Web Applications with ASP.NET
Build Leaner, Faster Web Applications with  ASP.NETBuild Leaner, Faster Web Applications with  ASP.NET
Build Leaner, Faster Web Applications with ASP.NETLohith Goudagere Nagaraj
 
Online Spreadsheet for your Web Applications using Kendo UI
Online Spreadsheet for your Web Applications using Kendo UIOnline Spreadsheet for your Web Applications using Kendo UI
Online Spreadsheet for your Web Applications using Kendo UILohith Goudagere Nagaraj
 
New Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik PlatformNew Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik PlatformLohith Goudagere Nagaraj
 
Creating Custom HTML Helpers in ASP.NET MVC
Creating Custom HTML Helpers in ASP.NET MVCCreating Custom HTML Helpers in ASP.NET MVC
Creating Custom HTML Helpers in ASP.NET MVCLohith Goudagere Nagaraj
 

More from Lohith Goudagere Nagaraj (20)

Porting Hybrid Apps to Native Apps
Porting Hybrid Apps to Native AppsPorting Hybrid Apps to Native Apps
Porting Hybrid Apps to Native Apps
 
Hybrid Mobile App Development With Cordova
Hybrid Mobile App Development With CordovaHybrid Mobile App Development With Cordova
Hybrid Mobile App Development With Cordova
 
Building Web Apps & APIs With Node JS
Building Web Apps & APIs With Node JSBuilding Web Apps & APIs With Node JS
Building Web Apps & APIs With Node JS
 
Even Quicker Development with Xamarin Forms Using Telerik UI for Xamarin
Even Quicker Development with Xamarin Forms Using Telerik UI for XamarinEven Quicker Development with Xamarin Forms Using Telerik UI for Xamarin
Even Quicker Development with Xamarin Forms Using Telerik UI for Xamarin
 
You Know Angular 2, You Know Native Mobile App Development
You Know Angular 2, You Know Native Mobile App DevelopmentYou Know Angular 2, You Know Native Mobile App Development
You Know Angular 2, You Know Native Mobile App Development
 
Angular JS 2.0 & React with Kendo UI
Angular JS 2.0 & React with Kendo UIAngular JS 2.0 & React with Kendo UI
Angular JS 2.0 & React with Kendo UI
 
Kendo UI Wrappers in ASP.NET Core
Kendo UI Wrappers in ASP.NET CoreKendo UI Wrappers in ASP.NET Core
Kendo UI Wrappers in ASP.NET Core
 
Seamless Access to Data from BI Tools using DataDirect Cloud
Seamless Access to Data from BI Tools using DataDirect CloudSeamless Access to Data from BI Tools using DataDirect Cloud
Seamless Access to Data from BI Tools using DataDirect Cloud
 
The Bleeding Edge - Whats New in Angular 2
The Bleeding Edge - Whats New in Angular 2The Bleeding Edge - Whats New in Angular 2
The Bleeding Edge - Whats New in Angular 2
 
Introduction to UWP - Universal Windows Platform Application Development
Introduction to UWP - Universal Windows Platform Application DevelopmentIntroduction to UWP - Universal Windows Platform Application Development
Introduction to UWP - Universal Windows Platform Application Development
 
Cross Platform Web Applications Using ASP.NET Core 1.0
Cross Platform Web Applications Using ASP.NET Core 1.0Cross Platform Web Applications Using ASP.NET Core 1.0
Cross Platform Web Applications Using ASP.NET Core 1.0
 
Build Leaner, Faster Web Applications with ASP.NET
Build Leaner, Faster Web Applications with  ASP.NETBuild Leaner, Faster Web Applications with  ASP.NET
Build Leaner, Faster Web Applications with ASP.NET
 
JavaScript Task Runners - Gulp & Grunt
JavaScript Task Runners - Gulp & GruntJavaScript Task Runners - Gulp & Grunt
JavaScript Task Runners - Gulp & Grunt
 
Visual Studio 2015 - Whats New ?
Visual Studio 2015 - Whats New ?Visual Studio 2015 - Whats New ?
Visual Studio 2015 - Whats New ?
 
Introduction to React JS
Introduction to React JSIntroduction to React JS
Introduction to React JS
 
Online Spreadsheet for your Web Applications using Kendo UI
Online Spreadsheet for your Web Applications using Kendo UIOnline Spreadsheet for your Web Applications using Kendo UI
Online Spreadsheet for your Web Applications using Kendo UI
 
NativeScript + Push Notifications
NativeScript + Push NotificationsNativeScript + Push Notifications
NativeScript + Push Notifications
 
10 Useful New Features of ECMA Script 6
10 Useful New Features of ECMA Script 610 Useful New Features of ECMA Script 6
10 Useful New Features of ECMA Script 6
 
New Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik PlatformNew Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik Platform
 
Creating Custom HTML Helpers in ASP.NET MVC
Creating Custom HTML Helpers in ASP.NET MVCCreating Custom HTML Helpers in ASP.NET MVC
Creating Custom HTML Helpers in ASP.NET MVC
 

Recently uploaded

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Recently uploaded (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Connecting your .Net Applications to NoSQL Databases - MongoDB & Cassandra

  • 1. Connecting your .NET Applications to NoSQL Databases - MongoDB and Cassandra 30th June 2016
  • 2. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.2 Product Owner ODBC, JDBC & ADO.NET Drivers, Progress DataDirect https://www.progress.com/documentation/datadirect-connectors Avadhoot.Kulkarni@progress.com Avadhoot Kulkarni
  • 3. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.3 Agenda  What is NoSQL? • Understanding Schema Design • Benefits • Implementations  Different ways of Connecting to NoSQL Data • Client APIs • REST/SOAP APIs • SQL Based Connectivity, Progress DataDirect Drivers
  • 5. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.5 What is NoSQL? Sample JSON Document (MongoDB): { name: “sue”, age: 26, status: “A”, groups: [“news”, “sports”]} Relational database design focuses on data storage NoSQL database design focuses on data use Key Value Store (Cassandra): NoSQL RDBMS
  • 6. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.6 Schema Design Comparison Relational Design NoSQL Document Design { user: { first: “Brody, last: “Messmer”, ... } purchases: [ { symbol: “PRGS”, date: “2013-02-13”, price: 23.50, qty: 100, ...}, { symbol: “PRGS”, date: “2012-06-12”, price: 20.57, qty: 100, ...}, ... ] } ... user_id first last … 123456 Brody Messmer … … user_id symbol date price qty … 123456 PRGS 2013-02-13 23.50 100 … 123456 PRGS 2012-06-12 20.57 100 … … Table: users Table: purchases
  • 9. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.9 Benefits of NoSQL High Performance • Data can easily be partitioned across multiple nodes • Low default isolation levels for both read and write operations • Object models (Denormalized schema design) reduce need for expensive joins • Typical index support, even on fields within embedded documents and arrays High Availability & Fault Tolerance • Replica sets / nodes provide automatic failover and data redundancy Easily Scale Up or Scale Out • Capable of running on commodity hardware Cost
  • 11. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.11 NoSQL Implementations MongoDB Type: JSON Document Store Query Language: API / PSQL Typical Use Case: • Web Applications (especially when built with JavaScript) Additional Benefits: • Node.js / Web friendly -- JSON • Dynamic schema Apache Cassandra Type: Key Value Store Query Language: CQL Typical Use Case: • Real-time analytic workloads • Heavy Writes, with desire for reporting Additional Benefits: • Especially High Availability with CAP focus on Availability and Partition Tolerance MarkLogic Type: Multi-Model Query Language: API Typical Use Case: • Search • Recommendation Engine Additional Benefits: • Handles any types of data
  • 12. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.12 Ways to Access NoSQL Data Client SDK REST/SOAP APIs SQL Connectivity
  • 14. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.14 Client API Based Connectivity Almost every NoSQL database has development SDKs to allow applications to integrate with its data.  Pros: • Easiest and quickest way to develop application  Cons: • Functionality may be limited, • Creates dependency on vendor SDK • Learning the SDK is vendor specific learning  When to Use: • Time critical deliveries, • Vendor specific Integration is acceptable
  • 15. Example: Client SDK Connectivity to MongoDB Components Used for the Demo Sample MongoDB C# Driver • Nuget Package Link https://www.nuget.org/packages/mongocsharpdriver/ • Getting Started https://docs.mongodb.com/getting-started/csharp/client/
  • 16. Example: Client SDK Connectivity to MongoDB What does the sample do? • Insert object of type MyClass – Square • Insert object of type MyClass – Circle • Insert object of type SubClass – SubClass • Count All Objects which Has Corners > 1 • Count All Objects which Has Ratio > 1
  • 17. Example: Client SDK Connectivity to MongoDB
  • 18.
  • 19. Example: Client SDK Connectivity to Cassandra Components Used for the Demo Sample Cassandra C# Driver  Nuget Package Link https://www.nuget.org/packages/CassandraCSharpDriver/  Getting Started https://academy.datastax.com/resources/getting-started-apache- cassandra-and-c-net
  • 20. Example: Client SDK Connectivity to Apache Cassandra What does the sample do? • CREATE the USERS Table • Insert User – Salman • Insert Another User - Shahrukh • Select a User using Where Clause Filter Condition
  • 21. Example: Client SDK Connectivity to Cassandra
  • 22. Example: Client SDK Connectivity to Cassandra
  • 24. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.24 REST/SOAP API Based Connectivity Some NoSQL vendors expose their low level APIs over REST and/or SOAP. Few provide this connectivity out-of-the box i.e. CouchDB; While few need extra setup, e.g. Cassandra & MongoDB  Pros: • Usually more flexible and performant than SDK Access • Small vendor specific learning compared to Client SDK  Cons: • More complex to integrate compared to SDK  When to Use: • Performance is Key • Looking integration which is less vendor dependent
  • 25. REST API Connectivity to MongoDB There are Multiple REST Interfaces for MongoDB • https://docs.mongodb.com/ecosystem/tools/http-interfaces/ Building First Mongo DB Application using REST • https://www.mongodb.com/blog/post/building-your-first-application- mongodb-creating-rest-api-using-mean-stack-part-1 REST APIs for MongoDB CRUD Operations • http://www.codeproject.com/Articles/1071823/RESTful-WEB-API-for- CRUD-operations-in-MongoDB
  • 26. REST API Connectivity to Cassandra Apache-Meos REST API Reference • https://mesosphere.github.io/cassandra-mesos/docs/rest-api.html Writing your first client • https://docs.datastax.com/en/developer/nodejs-driver/1.0/nodejs- driver/quick_start/qsQuickstart.html RESTful APIs using spring Boot and Cassandra • http://myjourneyonjava.blogspot.in/2015/08/restful-api-using-spring-boot- and.html
  • 28. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.28 SQL Based Connectivity There are few third party vendors like Progress DataDirect, who provides SQL standard based drivers for NoSQL Data sources.  Pros: • No new learning, we all know SQL and ODBC/JDBC/ADO.NET • Easy to integrate with BI/Analytics tool which expect xDBC/ADO.NET Integration  Cons: • Not a natural fit for the Data Mapping. • Some operations could become very slow because of limitations of underlying APIs/Protocols  When to Use: • Third party BI/Analytical tool integration • Designing Applications which are vendor agnostic • Data Sync/Integration applications with RDBMS DataSources
  • 29. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.29 SQL Connectivity to NoSQL Databases Is Hard Cassandra MongoDB Challenges Non-Standard Query Language Lack of Common RDBMS Functionality • No Support for Joins • Limited support for filters, aggregates, etc • Sorting is not ANSI SQL Compliant • No ACID Transactions • Unique Authentication Non-relational Schema • Heavy use of complex types (denormalized data model) • Self-describing schema – Can only discover columns by selecting data • Primary / Foreign Keys maintained by apps, not the database Frequent Release Cadence
  • 30. Example: SQL Connectivity to MongoDB Progress DataDirect ODBC Driver for MongoDB  Download Page : https://www.progress.com/connectors/mongodb  Documentation: https://documentation.progress.com/output/DataDirect/odbcmongo help/index.html
  • 31. Example: SQL Connectivity to MongoDB What does the sample do? • Uses ADO.NET ODBC Bridge to Progress DataDirect MongoDB ODBC Driver • Application clears all rows in the MyClass Collection (Table). • Insert object of type MyClass – Square • Insert object of type MyClass – Circle • Insert object of type SubClass – SubClass • Count All Objects which Has Corners > 1 • Count All Objects which Has Ratio > 1
  • 34. Example: SQL Connectivity to Cassandra Progress DataDirect ODBC Driver for Apache Cassandra <Preview>  Download Page : https://www.progress.com/connectors/apache-cassandra  Documentation: https://documentation.progress.com/output/DataDirect/jdbccassandrahe lp/
  • 35. Example: SQL Connectivity to Apache Cassandra What does the sample do? • Uses .NET ODBC Bridge to Progress DataDirect Apache Cassandra ODBC Driver • Delete all the rows from USERS Table • Insert User – Salman • Insert Another User - Shahrukh • Select a User using Where Clause Filter Condition
  • 38. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.38 Collection Name: stock { symbol: “PRGS”, purchases:[ {date: ISODate(“2013-02-13T16:58:36Z”), price: 23.50, qty: 100}, {date: ISODate(“2012-06-12T08:00:01Z”), price: 20.57, qty: 100, sellDate: ISODate(“2013-08-16T12:34:58Z”)}, sellPrice: 24.60} ] } “Normalizing” the NoSQL Data Model Table Name: stock _id symbol 1 PRGS stock_id Date Price qty sellDate sellPrice 1 2013-02-13 16:58:36 23.50 100 NULL NULL 1 2012-06-12 08:00:01 20.57 100 2013-08-16 12:34:58 24.60 Table Name: stock_purchases
  • 39. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.39 “Normalizing” the NoSQL Data Model The Benefits:  Re-use of existing skills (SQL, Joins, etc.) • Exposing complex types using concepts familiar to those savvy with RDBMS  As arrays/lists/maps/sets grow, table definitions remain constant  Simplified / Narrower table definitions  Joins across parent/child tables result in a single query to the database. In other words, there’s no performance penalty.  Data in arrays can be sorted and/or aggregated via SQL
  • 40. NoSQL is non-standard, non-relational way of storing information. Client SDK API based access is the easiest way to reach NoSQL data from applications, though it might be limited, creates dependency on the SDK libraries and has lot of data source specific learning. REST APIs based access is a bit more complex, but provides more flexibility in terms of its usage. The API knowledge is data-source specific; If written good code, should perform better than client SDK. SQL based connectivity, no new data source specific learnings, easy integration with third party BI/Analytics tools which expects SQL connectivity. As it’s not the natural way of connectivity to NoSQL, Data Normalization is required. Some SQL connectivity solutions like Progress DataDirect takes care of this transparent to the application. Normalisation techniques should be the key criteria for choosing the right SQL Connectivity solution for NoSQL DataSources. Recap

Editor's Notes

  1. Mark logic – document store (born) + data store + triple store
  2. We have customer (Software AG)who really valued the Out of the Box connectivity provided by Standard based drivers Pentaho – JDBC Tableau – ODBC BIDS/Crystal reports – ADO.NET (Business Intelligence Development Suite)
  3. Release cadence for Cassandra? Cassandra gets released Monthly with odd versions are reserved for maintenance and even for new functionality
  4. Our approach provides the most natural and flexible representation of nested, multi-value data to relational applications We examine the data stored and normalize nested data/tuples into second-normal relational form based on a fixed schema ‘Top-level’ data becomes the parent table and nested data become ‘virtual’ tables with FK relation to the parent table Defined using schema definition tool Transparent to the application! PHIL: Another benefit that we may want to mention is that OEM/ISVs won’t need to reinvent their interface for every new complex data type – our normalization will represent these in ‘normal’ ways, saving them the effort or redesigning UI and other functionality.
  5. Existing applications won’t need to reinvent their interfaces for every new complex data type – our normalization will represent these in ‘normal’ ways, saving them the effort or redesigning UI and other functionality.