title: Wide column vs column family vs columnar vs column oriented DB definition
body: <p>There are lots of confusions among these terms. I'd like to through my understanding out and see if people agree. I have seen conflicting and wrong definition all over the web.</p>
  <p>In my mind, wide column and column family DB are essentially the same thing. They are</p>
  <ol>
  <li>the data are organized logically by a group of key-value pairs (each one called column);</li>
  <li>is identified by a unique row key;</li>
  <li>each row can have variable length or definition of columns and</li>
  <li>stored on disk one row after another. So column family (wide column) table is similar to relational DB's table in that they are organized as rows still.</li>
  </ol>
  <p>The main difference is they it doesn't have fixed schema for columns and can't do table join obviously.</p>
  <p>An example of 3 rows (column families): each row has different length and/or columns., but on disk <em>rowkey1</em>'s entire content is a continuous line followed by other rows similar to relational DB</p>
  <blockquote>
  <p>rowkey1  k1-v  k2-v k3-v</p>
  <p>rowkey2  k1-v  k4v</p>
  <p>rowkey3  k2-v  k4-v k5-v</p>
  </blockquote>
  <p>On the other hand, the term columnar DB is the same column oriented DB. They are stored on disk one column at a time, not one row at a time. It is great for time series or any multi series analytical purpose. The fact each column has the same type of data and is stored together allows for better data compression as an added bonus.</p>
  <p>an example:</p>
  <p><a href="https://i.stack.imgur.com/oLulo.png" rel="noreferrer"><img src="https://i.stack.imgur.com/oLulo.png" alt="enter image description here" /></a></p>
  <p>on disk:</p>
  <blockquote>
  <p>a:1  b:2 c:3 d:4</p>
  <p>10:1 9:2 8:3 7:4</p>
  </blockquote>