Friday, July 13, 2012

NoSQL, BigTable, and data stores

I've started reading a lot about NoSQL Databases and it fascinates me, especially as a developer who has grown up in the Relational Database world (Oracle and SQL Server) and spent a lot of time optimizing queries, working on complex SQL statements, normalizing tables, inner joins, left outer joins, inline views, and all that good stuff.

Over time, I've watched the evolution from the Data Tier of the n-tiered model go from DAOs that executed JDBC to ORM (been doing a lot of Hibernate and NHibernate) to Grails/GORM (which provides a ton of create/read/update/delete methods automatically, freeing the developer from having to maintain this code). 

I have read articles about how companies that work with extremely large volumes of data like Google have developed distributed, non-relational data stores such as BigTable.  When I was playing with Google App Engine was my first exposure to BigTable, and it was a bit of culture shock for a developer who is used to the traditional RDBMS model present in most corporate environments (at least every environment I have worked in since I started in industry in 1998). 

BigTable and the problem it was created to address fascinated me.  However, I really couldn't get into Google App Engine.  At the time, it was purely Python/Django, though it has since been expanded out to include Java.  I did write several Python scripts and built a few pages in Django, but found it to be an uncomfortable fit for someone comfortable with writing Java in IntelliJ or C# in Visual Studio .NET. 

Recently I have been reading about the NoSQL movement.  I am going to pull down MongoDB and give it a try.  I was glad to read that Grails has a MondoDB plugin.

No comments:

Post a Comment