About a decade ago, SQL was the unchallenged standard for programming, storing, and managing data in relational database management systems (RDBMS). An RDBMS essentially stores data in tables with a structured format of rows and columns. The values they store and even the tables themselves can be made to relate to each other. Various implementations such as MySQL, Microsoft SQL Server, and PostgreSQL all enjoyed widespread use.
However, SQL found itself challenged over the past few years as new use cases for data emerged. Developments in cloud computing and the Internet-of-Things (IoT) enabled the collection of vast and varied amounts of unstructured data from smart devices and sensors. This deluge of big data made storing information in SQL databases quite difficult, giving rise to the use of NoSQL databases. Since NoSQL databases have no established relational schema, users need not worry about forcing unstructured data into pre-defined tables. NoSQL has gained much hype due to this flexibility.
As such, developers now face the dilemma of choosing between SQL and NoSQL for their IoT related projects. However, this may not be a straightforward choice for some. Many enterprise systems and applications are deeply invested in SQL databases. Most of their developers are also more familiar with SQL. There are also plenty of free resources with SQL cheat sheets, so even non-developers are able to perform queries, understand the meaning behind every SQL symbol and pull information from databases – without needing in-depth programming knowledge. Because of how ingrained SQL is, many organizations would also like to simply integrate their adoption of IoT with their existing SQL-based systems and infrastructures.
The big question is if it’s possible, and, if so, is the effort worth it?
Rise of IoT
Enterprise adoption of IoT is on the rise as more devices find use across various business processes. Gartner expects that 5.8 billion enterprise and automotive endpoints will be connected to the IoT by 2020.
Manufacturing facilities and factories are now integrating more internet-connected robots and sensors, allowing industrial control systems to be accessed remotely. Warehouses are using trackers to monitor product movement. Offices are also adopting IoT devices like smart thermostats, security cameras, and appliances to help reduce costs and automate routine processes. To maximize their IoT adoption, they should be able to integrate their IoT devices not only to their infrastructure but also to their enterprise apps as well.
This also means ensuring that data can be passed on securely and seamlessly. IoT devices can generate a lot of data which can fuel their big data and analytics efforts. The insights that can be generated from analyses can ultimately become a competitive advantage. Large enterprises have already shown how this is possible. UPS, for example, uses tracking data from their fleet to create optimal routes making their deliveries more efficient and effective.
Why NoSQL Got a Boost
Interestingly, NoSQL has been around for a long time but it’s only recently that it has found strong support among developers. One of the strong arguments for using NoSQL with IoT data is the speed and ease by which users can store data from devices. NoSQL uses key/value stores, or for some more advanced NoSQL databases, objects. With NoSQL, new information is just appended. This allows NoSQL databases to accept all sorts of new information. For efforts that simply want to collect and log streams of IoT data into a database, NoSQL appears very much suited.
This is in contrast to SQL’s structured format. Often, those working with SQL databases can find it challenging to determine where to assign certain values especially if they don’t fit into the existing schema. Such issues are bound to become common as new devices that gather new information are integrated into the infrastructure.
The Case for SQL
Because of these considerations, many new efforts simply gloss over SQL as a choice for their IoT efforts. At times, this choice can even cause friction within organizations. While developers may want to leverage NoSQL’s flexibility, using it may require new investments. Acquiring new infrastructure components, even if they’re only cloud instances, can become quite hard to justify if the company has existing and significant commitments to SQL infrastructure.
The challenge then for technology officers is to create an ecosystem that would enable companies to enjoy the benefits of IoT while maximizing SQL resources and capabilities. Using SQL with IoT is doable. It’s possible to use data aggregators or nodes that receive information from endpoints which can pre-process the data before passing it on to an SQL database server. Another approach is to embed SQL in endpoint software to prepare and process data prior to transmission to SQL servers. Raw data can still be stored in these nodes or on a backup but the SQL-prepared data will be the ones used for applications.
When it comes to business intelligence and analysis, it’s still easier to work with and make sense of structured SQL data. The existing expertise and familiarity of developers and even non-developers to work with SQL also means that they could readily benefit from the data generated by their IoT devices.
Ultimately, it all boils down to a matter of circumstance. Smaller efforts and projects beginning from scratch may find that starting with NoSQL can give them the most flexibility and agility. Organizations that have established use and investments in SQL can find ways to continue using the technology for their IoT efforts. But what’s clear is that there SQL is still relevant and can be of great value in this brave new IoT-driven world.