为什么 BigTable 有列族?
Why does BigTable have column families?
为什么 BigTable 的结构是 "family:qualifier" 的两级层次结构?具体来说,为什么要强制执行而不是仅仅使用列,比如说,建议用户将他们的限定符命名为 "vertical:column"?
我感兴趣的是执行此操作是否可以实现某些工程优化,或者这是否完全是设计问题。
家庭组有几个优点:
通过在单个列族中获取一组列限定符,查询变得更容易
Bigtable 有一个概念 "locality groups"。位置组允许将一个系列写入单独的文件,这在某些列系列的访问频率低于其他列系列的情况下会有所帮助。您可以在 this analysis of HBase vs. Bigtable 中查看有关位置组的一些信息。
为什么 BigTable 的结构是 "family:qualifier" 的两级层次结构?具体来说,为什么要强制执行而不是仅仅使用列,比如说,建议用户将他们的限定符命名为 "vertical:column"?
我感兴趣的是执行此操作是否可以实现某些工程优化,或者这是否完全是设计问题。
家庭组有几个优点:
通过在单个列族中获取一组列限定符,查询变得更容易
Bigtable 有一个概念 "locality groups"。位置组允许将一个系列写入单独的文件,这在某些列系列的访问频率低于其他列系列的情况下会有所帮助。您可以在 this analysis of HBase vs. Bigtable 中查看有关位置组的一些信息。