Unknown jewels of Unix: NoSQL
I have known about Carlo Strozzi's NoSQL for about 6 years. I don't think many others do (it's google score is 39500, compared with 81200000 for MySQL) , and I think it's a shame, because it's a much more interesting idea.
What is it? It's a relational database.
Sure, I can almost hear you think [1] , "like Mysql!" or "like Postgres!" and you are wrong because it's very different.
NoSQL is a relational database implemented in AWK and operated via the unix shell. Yes, NoSQL is the most unixy RDBMS in the world. So all of you so-called unix lovers, shell freaks, you are gonna love this.
Installing it is perhaps a bit harder than it should (who knew there are no MAWK RPMs anymore!), but it seems to be packed for Debian at least ;-)
You can learn to use NoSQL with a nice [2] tutorial that was published on Linux Journal.
The tables are plain text files, and later you can do things like this (from the docs):
% column Item Cost Value < inventory | row 'Cost > 50' | mean -l Value Item Cost Value ---- ---- ----- 3 80 400 6 147 13083 7 175 875 ---- ---- ----- 4786
Isn't that cool? What it does is take the inventory table, select over columns Item, Cost, Value the rows with Cost > 50, then calculate the mean of the Value column :-)
It even supports reports, joins, a bazillion things.
Honestly, I am not sure I can find a practical use for it [3], but it is a great piece of software, written by a dedicated guy, it is extremely original, and it does work. I'd even say it's pretty powerful, and you must accept, it's unixy as all hell.
So, Carlo Strozzi, here's a toast for you and NoSQL. You are cool.
[1] So good is my hearing
[2] Sadly it's quite old
[3] I did once, but that was when I was a real programmer ;-)
AWK and shell script are 'standards' in fact in UNIX
Why do use a "not standard" query language ?
Hmmm, I am not sure why this is better than *awk or sed. What _would_ be interesting is a language that could query data text files (such as *.csv) using sql as the query language, thus removing the need to use awk (even though it awk is so cool and unixy godammit that I would keep on using it anyway)
Yes. I means something like that : a uniform way for access. In this case, ANSI SQL. Could be a plugin or extension for NoSQL :-)
This would require , maybe, a more complex parser, but has got advantages:
- known for many people. A global interface is a good feature
- portability. Maybe I would like migrate from my MySQL personal database to NoSQL, but I wouldn't like rewrite my SQL sentences into NoSQL query languages. Maybe quick, but maybe not.
Disadventages: change name project !!! :-) and lost personality. And I like project with personality.
( Sorry my poor English )