cassandradatastaxdatastax-enterprise

Materialized views - best practices


With the advent of materialized views - is there a best-practices guideline to follow?

I have read; http://www.datastax.com/dev/blog/new-in-cassandra-3-0-materialized-views

And it seems like an awesome feature. Especially if you're still hard-wired with RDBMS thinking...

But it doesn't actually state definitively, for example; "You should favor materialized views over separate purpose-built tables." or "You should only use materialized views for XX use-cases"

So I am left unclear as to whether or not I should be creating query specific tables (like I have previously done in Cassandra) or swap to using materialized views. Or more specifically - what use-cases suit each method best.


Solution

  • After watching the Sessions from Cassandra Summit 2016, all the advice I heard from presenters - including Patrick Mcfadden of DataStax, stated that Materialised Views WAS a good default choice.

    That you only needed to create individual tables if you had to have discreet control over the timing of when data appeared.

    Under the covers; Cassandra actually created real tables for the materialised views - there just wasn't a guarantee as to when changes in the data from the "source" got to the views.

    If you were OK with a (possibly) a couple of seconds of gap - between new data being available in the view - that it made it tasks significantly easier.