0

Using NoSQL & RDBMS in same application is advisable? Managing relational/transaction data into RDBMS and dynamic data ito NoSQL and latter that will be used for Analytic?

Community
  • 1
  • 1
syv
  • 3,528
  • 7
  • 35
  • 50
  • You need to give much more detail about what you hope to accomplish, what kind of data you have, etc. This is really far too broad as currently stated. – John Powell Aug 08 '14 at 17:15

1 Answers1

1

Yes

You can use Both NoSQL and RDBMS in same application, In fact many project uses the same approach.

In a working environment you have a Relation-Mapping between different entities of your business and mostly Normalized. So its advisable to use an RDBMS there. Although some NoSQL solutions are out there in which you can handle these BUT on your own but you're never going to need it, as in NoSQL you can place the related data in one Big Table, but then here you have to think much about the structure of that. In case of RDBMS the structure is straight forward (Normalized mostly).

So its better to use RDBMS here.

Now in case of Analytics you should use NoSQL, as the content is mostly linear and you will require a "flat structure". Only one table having all required fields. This approach in GOOD as compared to different tables because as the data grows JOINS are going to make the Query so slow that retrieving Data will be pain in ass. Although there are so many solution in RDBMS provided by some of the big names in Database Technologies, I'm not in favor of using them.

Also Analytics is something in which the parameters you are analyzing are changing frequently a Non-Schema Based DB can increase your productivity to large extent.

Telling from personal experience : We were using MSSQL as main DB for the site and for the Analysis but as the data grew we tried many ways, finally settling on using Mongo as the Analytic Database and MSSQL as main DB.

SO the project uses MSSQL for transaction (functional) working and Mongo for Analytics.

Community
  • 1
  • 1
Dinkar Thakur
  • 3,025
  • 5
  • 23
  • 35
  • @DinkarThakur. I'm not sure I totally agree. RDBMS are designed to do joins and if well designed will allow you to run queries that you didn't anticipate at design time. NoSQL solutions might be more flexible, but if you want to run a new kind of query that you document wasn't designed to handle, you are in trouble. Polymorphic solutions can be really powerful, but you need to be careful. – John Powell Aug 08 '14 at 17:14
  • I totally agree with you John, but when you have to do analysis you have to do multiple joins to fetch all sort of data. as the Data grows Queries became slower and slower. http://stackoverflow.com/questions/173726/when-and-why-are-database-joins-expensive . Although you can do horizontal partitioning of the tables but thats not that easily, as you have to maintain the inserts and updated, and That's pretty easy with NoSQL Sharding Techniques – Dinkar Thakur Aug 09 '14 at 06:29