HarperDB-Mixing SQL and NoSQL





Original Post by Dhruv Kanojia, can be found here

Earlier this year, in February (2018), HarperDB organized a Hackathon and thanks to that I found a database I had been looking for. By mixing the NoSQL with SQL, I now have a database that will let me scale easily, while still being able to use SQL (I love SQL for some reason).

You see, in my High School time, I had MySQL in our Java classes and the whole concept of Databases seemed amazing at that time and then operating with SQL queries seemed even more amazing and over the time, I’ve fallen in love with it. It is simple, fast and does a lot of things if you know your queries. Plus there’s Foreign Key concept, which I use in almost each and every project I work on. And the community is really great. So, if you’re stuck somewhere, you have a lot of people to ask for help.

However, you need to know your data type before building database. If you want to change a data type of a column and it is being referenced somewhere, it is not easy to change it. In past few years, a trend has increased for NoSQL databases, which is easily scalable, lightweight, fast and you don’t really have to define your data type. NoSQL is flexible and that’s the reason why a lot of companies are also moving to NoSQL completely or have incorporated NoSQL in some format in their architecture.

I personally would love to work on a NoSQL database, however, all my current project requirements needs me to stick to SQL, plus I feel like I work faster with SQL now. Plus, there’s one more issue why I haven’t incorporated NoSQL in any of my work, and the reason is that I cannot perform SQL queries on it. I need to parse the JSON and work with it and I’m not really a big fan of this.

HarperDB comes to the rescue. It works like a NoSQL database, but it lets us perform SQL queries on the database. So, I can scale easily via the NoSQL properties and still be able to use SQL queries and concepts. And what’s amazing is that HarperDB is really lightweight. I ran it on an AWS server and the read/write data was relatively lower. HarperDB’s twitter bio sums it up nicely

HarperDB radically simplifies #bigdata architectures providing a single model, schema-less #database with interfaces for both #SQL and #NoSQL

HarperDB is currently available only for Mac and Linux only. So, no windows. However, if you’re on windows 10, you can follow this guide to run Ubuntu on your your windows 10 and hence, execute HarperDB. As a security practice, you need to run HarperDB as a user and not as root. If you do try to run it as a root, you’ll be prompted with the error.

As soon as you configure it and run it, you’ll be greeted with a doggo and the success message.

HarperDB Started
Source : HarperDB Blog

If you want to know about HarperDB in detail, I’ll advice you to read this blog first, so as to know why you should use HarperDB. This blog is just a gist of what HarperDB can do. Read their blogs to know more in detail.

But, you know what? documentations suck, or so I believe. I personally love to see the working applications or examples of the technology before using it.