
What’s the Best NoSQL Database? Cassandra vs. MongoDB vs. Redis vs. ElasticSearch - user5994461
https://thehftguy.com/2017/03/29/whats-the-best-nosql-database-cassandra-vs-mongodb-vs-redis-vs-elasticsearch/
======
jdenning
Nice! The title made me assume that this was an article from someone who
didn't understand the different use-cases for these technologies - to the
contrary, it's a handy flow-chart for understanding which NoSQL databases are
suited to various types of data.

------
chx
Columnar data stores are not like CSV, at all. Check
[http://database.guide/what-is-a-column-store-
database/](http://database.guide/what-is-a-column-store-database/) for example
"Each row can contain a different number of columns to the other rows. And the
columns don’t have to match the columns in the other rows (i.e. they can have
different column names, data types, etc)" This nonsense of columnar stores
being a fixed schema is repeated in the next step.

Graph databases misses AgensGraph which is arguably one of the most exciting
database developments nowadays.

Seriously, all you have to say about Aerospike is "cool name"? And MongoDB
"not a database" is a very tired joke.

~~~
manigandham
Agreed that columnar description is completely false in this chart but what is
so special about AgensGraph?

JanusGraph is another graph database engine that uses more pluggable storage
and indexing backends.

There's also DGraph which is a new focused distributed graph database designed
to be faster and more scalable.

~~~
chx
AgensGraph is PostgreSQL based , that's what make it exciting.

------
throwaway2016a
I think it's great when people take time to make visual explanations of things
and share them. This has potential.

But as it is, it is nothing more than a mind map with some flowchart symbols
thrown in and is missing a lot of popular databases. Druid (timeseries) and
DynamoDB (key/value) notably.

It is also only nested one level deep. Any of the sections with more than one
child can be broken up into other decisions to narrow down the choice.

------
user5994461
Author here.

This covers the main types of databases and use cases. I believe that
developers should known them all to be able to pick the right tool for the
job. Sometimes, a job really has a right tool.

This doesn't cover every product in the universe. These databases are the most
important databases that you should absolutely known (and use when necessary).

Many enterprise paid products are missing: Teradata, Exadata, Vertica, OpenDJ,
Greenplum... not that many people have $50k/node to spend on them.

This also ignores a million of lesser known databases, most of which are not
noteworthy. Apologies in advance for not mentioning your favorite or homegrown
products.

~~~
manigandham
Columnar != CSV/columns/spreadsheet/tabular data.

Columnar as in column-family or wide-column is just advanced key/value.

~~~
user5994461
Columnar is a CSV/spreadsheet where columns are designated by name instead of
relative position.

Let's call that a column header. People have been using CSV/spreadsheets with
headers for half a century.

------
kafkaesq
Comparisons of similar-ish, but basically rather different systems are always
potentially interesting.

But really now, the phrase "best NoSQL database" is almost meaningless, isn't
it?

~~~
copperx
Are you saying "best NoSQL db" is an oxymoron?

~~~
kafkaesq
No, it's kind of like saying "best kitchen appliance."

------
ubercow
Does [https://druid.io](https://druid.io) not count as "Distributed TimeSeries
database" for some reason?

------
thoughtexprmnt
Seems incomplete without any mention of Microsoft Azure options like Cosmos
DB, Blob and Table storage, Data Lake, etc.

~~~
Jare
Also CouchDB for integrated API serving via views (?) and extreme replication
abilities.

Surprised to see Riak labeled as a "caching" DB, but well.. I'm not sure they
are an option for anything anymore.

------
manigandham
Columnar database does not mean data in columns - it's just a badly used name
to describe what are effectively advanced key/value databases, usually because
they supported ordering, nested levels of values and collections.

------
projectramo
I really want to laugh along with the other cool kids at the classification of
Mongo as "Not a DB" but I have no idea what he means by that.

~~~
idunno246
When mongo came out the picked some bad defaults so it never waited for an ack
for writes. So data was lost, but benchmarks looked amazing. It had a lot of
other problems, it became too big too fast by promising magic it didn't
deliver. Not sure how it is right now.

besides that flame attempt, his definition of columnar databases doesn't match
the standard - Dynamodb is pretty much the complete opposite of columnar.

~~~
projectramo
Thanks for the explanation.

I am a fan of joking flame wars as long as it is understood to be in good fun.

------
gcristofol
Yes

