Developing for cloud databases

Advice

Cloud databases have become a staple of Platform-as-a-Service (PaaS) and Infrastructure-as-a-Service (IaaS) offerings.

Amazon Web Services (AWS), for instance, offers several different data store types, while Microsoft's Azure mixes the familiar SQL Server with a simple table store. Then there are the distributed cloud-scale database platforms, like Apache's Hadoop and Google's BigTable. So, which do you use and how do you build them into your development process?

While many cloud data sources are hosted instances of familiar enterprise databases, with full SQL support, many are what have become known as NoSQL databases – databases that don't offer the table-based relational approach to storage. There is a proliferation of NoSQL databases in the cloud because it is an approach which scales rapidly and offers developers quick access to information without designing complex queries or using schema. Some are used as document stores for indexing large amounts of information. Others are schema-less key-value stores that are simple to use and easy to program against. It is a mix of scale and ease-of-use that has made them popular and services like Facebook, Google and eBay have deployed massive NoSQL stores, handling many terabytes of data. They're not just used to crunch data – tools like the popular Memcached and Microsoft's Velocity, which help build scaling layers for private and public clouds, are in-memory NoSQL databases.

Switching from working with SQL databases to NoSQL can be complex. Many don’t have development tools, or are changing so fast that development tools can't keep up. Where they do have tooling, it's often web-based or reliant on browser plug-ins which can be hard to use in a traditional development environment. With public and private clouds now key elements in any development strategy, it's becoming increasingly important to find the right tooling for the services you plan to use.

Quest's Toad is well-known as a tool for working with Oracle and other databases. With cloud databases becoming increasingly important the company has now released a free version, Toad for Cloud, targeted at database developers looking to work with cloud services. There's no need to worry about learning a new syntax for working with NoSQL and cloud services – all you need to understand is SQL. There's also the advantage that Toad is a tool used by millions of database developers, with a well-known user interface and the ability to plug into familiar development environments, including Eclipse. It supports a wide selection of popular cloud data services, including Amazon's and Microsoft's, with others planned for future releases.

AWS add up to make one of the best known cloud platforms. With AWS you don't get one data store, you get two – Amazon SimpleDB for non-relational data, and Amazon Relation Database Service for more complex relational data. You could use Amazon's own tools to work with these, but unless you want to spend all your time in a browser, it's a lot easier to use Toad for Cloud's AWS support. Currently there's only support for SimpleDB – but as working with NoSQL services can mean a steep learning curve for most database developers, a familiar development and management environment makes it easier to consider working with cloud services.

Featured White Papers

n/a