Hbase RowKey设计架构

时间:2013-08-29 08:34:55

标签: python hadoop hbase thrift

我正在使用HBase来存储webtable内容,例如谷歌如何使用bigtable 供google bigtable的参考 我的问题是关于 RowKey ,我们应该如何形成它 谷歌正在做的是以相反的顺序保存URL,如PDF文档“com.cnn.www”中所示,以便与cnn.com相关的所有链接都将在GFS的同一块中进行管理,这将更容易扫描。
我可以使用谷歌使用的相同的东西,但如果我使用一些算法来压缩网址将不会很酷

例如

RewKey                               |  Google Bigtable                      |  Algorithm output
www.cnn.com/index.php                |  com.cnn.www/index.php                |  12as/435
www.cnn.com/news/business/index.html |  com.cnn.www/news/business/index.html |  12as/2as/dcx/asd
www.cnn.com/news/sports/index.html   |  com.cnn.www/news/sports/index.html   |  12as/2as/eds/scf

执行此操作背后的原因是rowkey会根据Hbase design schema缩短(主题 6.3.2.3.Rowkey Length 中提及)。

那么我们需要你们知道我在这里是否正确.... 如果我是正确的,我应该使用什么算法。我使用python而不是thrift作为编程语言,所以代码对我来说是压倒性的......

1 个答案:

答案 0 :(得分:1)

当您缩短URI时,为主机和路径单独执行并连接,因此您的密钥将类似于hostHash!pathHash,它将一方面保持简短并将来自同一站点的所有URI组合在一起其他