我正在使用HBase来存储Web表格内容,例如Google如何使用BigTable。
供google bigtable引用
我的问题是关于 RowKey ,我们应该如何形成它。
谷歌正在做的是按照相反的顺序保存URL,正如您在PDF文档“com.cnn.www”中所看到的那样,以便与cnn.com相关的所有链接都将在同一GFS块中进行管理,这将更加容易扫描。
我可以使用与google使用的相同的东西,但是如果我使用某种算法来压缩url,那将不会很酷
例如
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
这样做的原因是,根据Hbase design schema(在主题6.3.2.3。Rowkey长度中提到),rowkey会更短。
所以,我需要你们知道我在这里正确吗...。
另外,如果我正确我应该使用什么算法。我在节俭的情况下使用python作为编程语言,因此代码对我来说是压倒性的...
最佳答案
当您缩短URI时,请分别针对主机和路径进行操作并进行连接,这样您的密钥将类似于hostHash!pathHash,一方面可以简化它,另一方面将来自同一站点的所有URI分组在一起
关于python - Hbase RowKey设计架构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18505951/