3 ms·
NoSQL is my least favorite buzzword of the decade. It means absolutely nothing but being counter cultural to... SQL culture. Many NoSQL "databases"—and I use th
by duaneb 13y ago
NoSQL is my least favorite buzzword of the decade. It means absolutely nothing but being counter cultural to... SQL culture. Many NoSQL "databases"—and I use that in the lightest term possible—even have SQL engines.
- monstrado 13y agoAgreed, and some of these databases don't even embrace it. For example, HBase's main website makes no mention of being a "NoSQL" database (http://hbase.apache.org/ http://hbase.apache.org/). Of course, given the right circumstances, you could totally use SQL to talk to your data which lives in HBase, but that doesn't make it a SQL database. SQL is a query language, a database is usually made up of many different components, one of them usually being a query engine. Look at Impala (https://github.com/cloudera/impala https://github.com/cloudera/impala) which decouples itself completely from the storage engine layer, it can query data CSV data, doesn't mean it's a SQL database.
- otterley 13y agoHow to make a simple NoSQL database: (1) Install MySQL. (2) Create a database called "nosql". (3) In the "nosql" database, create a single InnoDB table called "data" with 2 columns: a BLOB primary key "mykey" and a BLOB column called "myval". (4) Write a thin wrapper over your favorite mysql client library implementing "get" and "set" operations (which are translated to SELECT and UPDATE statements). (5) Enjoy your ludicrous speed.
- monstrado 13y agoIf you're comparing this to your riak, redis, tokyo cabinet, ... database than most likely. With HBase, one of it's bread and butter operations is the start and stop row scan (otherwise known as a range scan). The only thing equivalent I know of in MySQL is using windowing functions, and even then I don't think that's an appropriate comparison. I hear you though, most people equate NoSQL to some sort of KeyValue store and that's it.
- duaneb 13y agoHow are multi-row transactions these days? That was the largest problem when I looked last... A data store does not a database make.
- monstrado 13y agoI don't think that's something they are trying to solve right now. Although HBase guarantees write consistency, I think http://research.google.com/pubs/pub36726.html http://research.google.com/pubs/pub36726.html is the closest paper on how to go about it, but I could be wrong. Like you mentioned, a lot of people use HBase as a data-store, it's incredibly good at that.
- duaneb 13y ago> Like you mentioned, a lot of people use HBase as a data-store, it's incredibly good at that. This is exactly what confuses me about NoSQL. It's not really comparable to relational databases on the CA[P] spectrum.
- monstrado 13y agoHBase doesn't claim to be some NoSQL database or equivalent to a relational database, anyone who thinks otherwise hasn't actually read into HBase. Just look at HBase's website which describe it exactly as > Apache HBase is the Hadoop database, a distributed, scalable, big data store.
- duaneb 13y agoI mean, I understand this, but plenty of people identify it as NoSQL. I'm sure the people on HBase are intelligent enough to understand it's a meaningless phrase that would make them look silly. EDIT: By which I mean, "NoSQL" doesn't even make sense as an approach by name. ACID relational databases and high availability data stores both have their places so evangelizing on either side is just silly. Though I would like to point people toward http://research.google.com/pubs/pub38125.html http://research.google.com/pubs/pub38125.html.
- e12e 13y agoI prefer the (backronym?) Not Only SQL - as it better describes what NOSQL can help with -- as opposed to using only a normalized relational data store.