Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nosql 面向列的DBs中的顺序行ID(HBase、Cassandra)?_Nosql_Cassandra_Hbase_Column Oriented - Fatal编程技术网

Nosql 面向列的DBs中的顺序行ID(HBase、Cassandra)?

Nosql 面向列的DBs中的顺序行ID(HBase、Cassandra)?,nosql,cassandra,hbase,column-oriented,Nosql,Cassandra,Hbase,Column Oriented,在HBase中设计行ID时,我看到了两条相互矛盾的建议(具体来说,但我认为它也适用于Cassandra) 您将经常聚集在一起以利用数据局部性的组键。(白色,Hadoop:权威指南,我记得在HBase网站上看到过,但找不到…) 分散按键,以便工作可以分布在多台机器上(幻灯片14) 我猜哪一个是最佳的可能取决于您的用例,但是有人对这两种策略都有经验吗?在HBase中,表是通过划分按字典顺序排序的键空间来划分区域的。表的每个区域都属于一个区域服务器,因此所有读写操作都由该服务器处理(这允许提供强大的一

在HBase中设计行ID时,我看到了两条相互矛盾的建议(具体来说,但我认为它也适用于Cassandra)

  • 您将经常聚集在一起以利用数据局部性的组键。(白色,Hadoop:权威指南,我记得在HBase网站上看到过,但找不到…)
  • 分散按键,以便工作可以分布在多台机器上(幻灯片14)

  • 我猜哪一个是最佳的可能取决于您的用例,但是有人对这两种策略都有经验吗?

    在HBase中,表是通过划分按字典顺序排序的键空间来划分区域的。表的每个区域都属于一个区域服务器,因此所有读写操作都由该服务器处理(这允许提供强大的一致性保证)。这意味着,如果您的所有读写操作都集中在密钥空间的一小部分,那么您将只能扩展到单个区域服务器可以处理的范围。例如,如果您的数据是一个时间序列,并由时间戳设置关键字,那么所有写入操作都将进入表中的最后一个区域,并且您将被限制以单个服务器可以处理的速率写入

    另一方面,如果您可以选择键,使得任何给定的查询只需要扫描一小部分行,但整个读写集合分布在您的键空间中,那么总负载将得到很好的分布和扩展,但您仍然可以享受查询的局部性好处