As far as computer languages go, SQL (Structured Query Language) is a pretty old one. It came to light in the early 1970s and it is probably not too popular with the Facebook generation. But the fact remains – SQL is a pretty awesome thing. It is by far one of the easiest and most efficient ways to query and interact with structured data. That’s why it remains by far one of the most heavily used languages for business applications.

But perhaps the most important role that SQL plays is that it makes developers think with a relational model in mind – and that means thinking about the best data structures for the application at hand. That’s a good thing. When developing applications -and particularly when developing business applications- the most important things are the data and the structures the data is stored in, not the application logic. Rob Pike, one of the original creators of UNIX, came up with an elegant maxim for this:

“Data dominates. If you have chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.”

In this era of distributed file systems and cloud computing, traditional databases are being used less and less, in favor of other data storage and retrieval methods. And that has led to improved, faster and more responsive web applications. But while there are some SQL-like approaches for cloud computing out there, they tend to be fairly limited and not as powerful as the full-blown SQL – in particular because it doesn’t take into account the intricate data relationships that SQL so elegantly describes.

The problem is, there’s a fundamental mistake people make when they think of SQL: they think of the access language and the storage mechanism as one and the same. But they can in fact be separated. SQL can be just a pure access language used to describe the data and relationships being accessed. The backend (the engine that actually handles and stores the data) can be anything.

That’s why today we’re announcing a new Zoho technology. It is a milestone for accessing data on the cloud through the familiar SQL language. We have aptly named this Zoho CloudSQL.

Zoho CloudSQL is a middleware technology that allows customers to interact with their business data stored in Zoho through the familiar SQL language. Customers are able to access Zoho cloud data using SQL on both other cloud applications as well as through traditional on-premises software.

At a high-level, Zoho CloudSQL serves as the bridge between the external application and the data stored inside Zoho. It receives the query in SQL, interprets it, delegates queries and aggregates results across the Zoho services.

Zoho CloudSQL Architecture Diagram

There are in particular 3 things that stand out about Zoho CloudSQL:

  1. It’s the first technology that allows customers to interact with their data on the cloud, from another cloud application or from an on-premises one through real SQL.
  2. It supports multiple SQL dialects. We support all the major (and even some not so major) ones: ANSI, Oracle, SQL Server, IBM DB2, MySQL, PostgreSQL and Informix.
  3. With our JDBC/ODBC drivers, developers can access data in the cloud just as easily as if it were stored in a local database.

The next natural question is: What Zoho services you can access through Zoho CloudSQL? Today we’re starting with Zoho Reports, our on-line reporting and business intelligence service, and soon other relevant Zoho services will follow-suit. Zoho Reports (which used to be called Zoho DB & Reports) also added a new Web API today.

Zoho CloudSQL also underscores Zoho’s commitment to never lock-in customers through the artificial retention of their data. Customers trust Zoho with their data because they know they can get it out anytime, through a variety of clearly documented and accessible means.

And just in case you were wondering – yes, Zoho CloudSQL is meant for developers, not end-users. So if this is the first time you’re hearing about SQL dialects and JDBC drivers, well, Zoho CloudSQL is probably not for you. But hey, it’s never too late to get started!

Get more details about Zoho CloudSQL.

Rodrigo Vaca

  1. kurye

    […] The Future of SQL in a SaaS world: Announcing Zoho CloudSQL […]

  2. kurye

    […] The Future of SQL in a SaaS world: Announcing Zoho CloudSQL […]

  3. invoice maker

    invoice maker…I found your post comments while searching Google. Very relevant especially as this is not an issue which a lot of peaople are conversant with….

  4. invoice maker

    invoice maker…I found your post comments while searching Google. Very relevant especially as this is not an issue which a lot of peaople are conversant with….

  5. Clarence

    @David AndersonWrt. to Zoho Reports which is the first service to support CloudSQL, we allow users to have upto .5M records in a table. We are working on to continually increase the limit ensuring that the performance of the service is not impacted. We have been also increasing the limits for customers based on specific demand. With this load, the Zoho Reports service (user interface) responds to all the requests within a second on the average.When talking about SQL query execution Time. Depending on the complexity of the query, amount of data and network speed, the execution time could vary from couple of milliseconds to upto 40 to 60 seconds max. Also we abort long running queries (more than the window mentioned) and notify the user about its failure. This is done to avoid performance hog due to such queries on the service as well to avoid timeouts/errors/hanging etc., from the Client applications which are executing the query.Hope I have answered to your question. If not let me know@prithwisThanks for further elucidating the CloudSQL technology. Wrt. to single CloudSQL client package, yes we do have plans for the same. Infact as we have more Zoho Services adopting CloudSQL, we plan to provide a universal JDBC/ODBC driver which could be loaded by the user application and interact with any of the Zoho Service seamlessly through SQL.Thanks,
    Clarence
    Zoho Reports – Online Reporting and Business Intelligence

  6. Clarence

    @David AndersonWrt. to Zoho Reports which is the first service to support CloudSQL, we allow users to have upto .5M records in a table. We are working on to continually increase the limit ensuring that the performance of the service is not impacted. We have been also increasing the limits for customers based on specific demand. With this load, the Zoho Reports service (user interface) responds to all the requests within a second on the average.When talking about SQL query execution Time. Depending on the complexity of the query, amount of data and network speed, the execution time could vary from couple of milliseconds to upto 40 to 60 seconds max. Also we abort long running queries (more than the window mentioned) and notify the user about its failure. This is done to avoid performance hog due to such queries on the service as well to avoid timeouts/errors/hanging etc., from the Client applications which are executing the query.Hope I have answered to your question. If not let me know@prithwisThanks for further elucidating the CloudSQL technology. Wrt. to single CloudSQL client package, yes we do have plans for the same. Infact as we have more Zoho Services adopting CloudSQL, we plan to provide a universal JDBC/ODBC driver which could be loaded by the user application and interact with any of the Zoho Service seamlessly through SQL.Thanks,
    Clarence
    Zoho Reports – Online Reporting and Business Intelligence

  7. prithwis

    Thanks for reminding the “facebook” generation of the existence — and importance — of SQL. In this area of mashups and webservices, it is good to be reminded that there really is no alternative to SQL based RDBMS for commercial applications.But if you look back on what has been achieved here … it is not all that new in terms of architecture. When you buy a traditional RDBMS, you install it on a server and then you install the RDBMS client software on user machines ( for example SQL Connect from Oracle) When you build or execute applications on the client machine, your applications talks to the RDBMS client located on this same machine .. this RDBMS client software manages the connection with the RDBMS server through a TCP-IP network … The application is led to believe that the RDBMS server is on the same machine as the application, even though in reality the server is on some distant machine connected over TCP-IP.What is happening here is very similar. The JDBC driver on the user machine is nothing but the RDBMS client .. the only difference being that instead of using a vanilla TCP-IP connectivity we are (possibly) using HTTP. In the past we had (SQL over TCP-IP) and now we have (SQL over HTTPp(over TCP-IP)) …. very neat, very neat indeed !The magic is obviously not in the SQL engine but in the client software … and here I have a suggestions that Zoho might consider : Package the JDBC-driver into a developer friendly CloudSQL client that one can install on the user machine. This will take CloudSQL into the same league as MySQL, Oracle or DB2 !Jealous product managers from Oracle and IBM might sneer about security and performance issues .. but after a few years of success these security issues will become irrelvent as people get used to it — as has been the case with internet banking.

  8. prithwis

    Thanks for reminding the “facebook” generation of the existence — and importance — of SQL. In this area of mashups and webservices, it is good to be reminded that there really is no alternative to SQL based RDBMS for commercial applications.But if you look back on what has been achieved here … it is not all that new in terms of architecture. When you buy a traditional RDBMS, you install it on a server and then you install the RDBMS client software on user machines ( for example SQL Connect from Oracle) When you build or execute applications on the client machine, your applications talks to the RDBMS client located on this same machine .. this RDBMS client software manages the connection with the RDBMS server through a TCP-IP network … The application is led to believe that the RDBMS server is on the same machine as the application, even though in reality the server is on some distant machine connected over TCP-IP.What is happening here is very similar. The JDBC driver on the user machine is nothing but the RDBMS client .. the only difference being that instead of using a vanilla TCP-IP connectivity we are (possibly) using HTTP. In the past we had (SQL over TCP-IP) and now we have (SQL over HTTPp(over TCP-IP)) …. very neat, very neat indeed !The magic is obviously not in the SQL engine but in the client software … and here I have a suggestions that Zoho might consider : Package the JDBC-driver into a developer friendly CloudSQL client that one can install on the user machine. This will take CloudSQL into the same league as MySQL, Oracle or DB2 !Jealous product managers from Oracle and IBM might sneer about security and performance issues .. but after a few years of success these security issues will become irrelvent as people get used to it — as has been the case with internet banking.

  9. David Andersen

    I am missing information about limits to the service. What is the maximum amount of data that can be stored, and what kind of performance can be expected when using it with lots of data?

  10. David Andersen

    I am missing information about limits to the service. What is the maximum amount of data that can be stored, and what kind of performance can be expected when using it with lots of data?

  11. Zoho&#8217s new CloudSQL &

    […] Read full details here.  […]

  12. Zoho&#8217s new CloudSQL &

    […] Read full details here.  […]

  13. infoworld.com

    Zoho releases SQL-based data-access service…Zoho, maker of an on-demand suite of business and productivity applications, announced on Tuesday CloudSQL…

  14. infoworld.com

    Zoho releases SQL-based data-access service…Zoho, maker of an on-demand suite of business and productivity applications, announced on Tuesday CloudSQL…

  15. Earl Rudolfo

    Oops meant DASHBOARDS, not bashboards. Actually they`re bashing the competition with innovative development-:). Keep it up Zoho!

  16. Earl Rudolfo

    Oops meant DASHBOARDS, not bashboards. Actually they`re bashing the competition with innovative development-:). Keep it up Zoho!

  17. Earl Rudolfo

    This is amazing stuff! I’m starting to feel like a kid in a candy store who can’t get enough of Zoho. Zoho must be reading my mind about creating financial bashboards using Z DB & Reports -:).

  18. Earl Rudolfo

    This is amazing stuff! I’m starting to feel like a kid in a candy store who can’t get enough of Zoho. Zoho must be reading my mind about creating financial bashboards using Z DB & Reports -:).

  19. Realtime Community | Messaging

    SQL in the Cloud Announced Today; SQL Injection in the Cloud to Follow…Zoho has announced CloudSQL for using SQL to query data in Zoho hosted applications. This a plus for developers who just need to take care with crafting queries…….

  20. Realtime Community | Messaging

    SQL in the Cloud Announced Today; SQL Injection in the Cloud to Follow…Zoho has announced CloudSQL for using SQL to query data in Zoho hosted applications. This a plus for developers who just need to take care with crafting queries…….

  21. Mark

    Wow, you don’t mess around do you!!! This is gonna be hugely important.Thanks Zoho!
    Mark

  22. Mark

    Wow, you don’t mess around do you!!! This is gonna be hugely important.Thanks Zoho!
    Mark

  23. CloudAve

    Zoho shakes the SaaS world with CloudSQL…Zoho is the sponsor of this blog but this i[…]…

  24. CloudAve

    Zoho shakes the SaaS world with CloudSQL…Zoho is the sponsor of this blog but this i[…]…