Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does BigTable have column families?

Why is BigTable structured as a two-level hierarchy of "family:qualifier"? Specifically, why is this enforced rather than just having columns and, say, recommending that users name their qualifiers "vertical:column"?

I am interested in whether or not enforcing this enables some engineering optimizations or if this is strictly a design thing.

like image 666
user3038457 Avatar asked Sep 07 '25 12:09

user3038457


1 Answers

There are a couple of advantages to family groups:

  1. queries become easier by getting a group of column qualifiers in a single column family

  2. Bigtable has a notion of "locality groups". Locality groups allow a family to be written to a separate file, which helps in situations where some column families are accessed less frequently than others. You can see some information about locality groups in this analysis of HBase vs. Bigtable.

like image 150
Solomon Duskis Avatar answered Sep 10 '25 07:09

Solomon Duskis