Fork me on GitHub

"needs a relational database model" is a difficult concept - you can often do just enough in non-relational stores to avoid needing a relational store e.g. cassandra doesn't support joins, but will sort by a key, so if you need a join you can merge streams of records sorted by the join key. similarly ES doesn't support joins, but a bit of denormalisation lets you use nested objects for many of the queries you might use a join for


relational dbs shine for arbitrary ad-hoc analytic queries, but even there - i have spark in front of cassandra which effectively exposes an odbc interface to cassandra - boundaries are blurred


some articles claim: relational is good for doing adhoc-queries, nonsql-denormalized-views is good for when you know your queries before hand question: when you're designing an webapp, how can you possibly NOT know your queries before hand? unless you're allowing users to specify arbitrary queries (seems like bad idea), you should always know queries beforehand -- what am I missing ?