Nosql 面向列的DBs中的顺序行ID(HBase、Cassandra)?
在HBase中设计行ID时,我看到了两条相互矛盾的建议(具体来说,但我认为它也适用于Cassandra)Nosql 面向列的DBs中的顺序行ID(HBase、Cassandra)?,nosql,cassandra,hbase,column-oriented,Nosql,Cassandra,Hbase,Column Oriented,在HBase中设计行ID时,我看到了两条相互矛盾的建议(具体来说,但我认为它也适用于Cassandra) 您将经常聚集在一起以利用数据局部性的组键。(白色,Hadoop:权威指南,我记得在HBase网站上看到过,但找不到…) 分散按键,以便工作可以分布在多台机器上(幻灯片14) 我猜哪一个是最佳的可能取决于您的用例,但是有人对这两种策略都有经验吗?在HBase中,表是通过划分按字典顺序排序的键空间来划分区域的。表的每个区域都属于一个区域服务器,因此所有读写操作都由该服务器处理(这允许提供强大的一
我猜哪一个是最佳的可能取决于您的用例,但是有人对这两种策略都有经验吗?在HBase中,表是通过划分按字典顺序排序的键空间来划分区域的。表的每个区域都属于一个区域服务器,因此所有读写操作都由该服务器处理(这允许提供强大的一致性保证)。这意味着,如果您的所有读写操作都集中在密钥空间的一小部分,那么您将只能扩展到单个区域服务器可以处理的范围。例如,如果您的数据是一个时间序列,并由时间戳设置关键字,那么所有写入操作都将进入表中的最后一个区域,并且您将被限制以单个服务器可以处理的速率写入 另一方面,如果您可以选择键,使得任何给定的查询只需要扫描一小部分行,但整个读写集合分布在您的键空间中,那么总负载将得到很好的分布和扩展,但您仍然可以享受查询的局部性好处