HBase实现社交关系数据存储
社交关系数据是互联网领域经常出现的应用,国内的新浪、微信等等,均是典型的代表。社交关系数据主要维护了客户关注和被关注信息。那么,如何使用HBase对社交关系数据进行建模和应用呢?本文将逐渐讨论HBase实现社交关系数据存储的建模方法和应用技巧。
对社交关系数据的存储,通常有读和写两个方面的需求。在读数据方面,概括为以下三点:
(1)查看某客户A关注了哪些客户;
(2)查看哪些客户关注了客户A;
(3)判断客户A能否关注了客户B。
在写数据方面,概括为以下两点:
(1)客户A添加了一个新的关注者;
(2)客户A取消了对客户B的关注。
为了实现上述功能,对照HBase的数据模型,设计如下图所示的模型:
数据模型
在该数据模型中,rowkey被设置为客户名称以方便查找和定位,column family为follows,其内部的每一列保存了一个关注者的信息。模型能够很好地处理读数据要求中的第一条和第三条,但第二条非常低效,需要遍历整张表查找哪些客户关注了某个特定客户,另外,为特定客户添加一个新的关注者也非常困难。
为了进一步优化以上模型,可考虑在同一张表中保存客户X关注的客户列表以及关注X的客户列表。如下图所示:
数据模型
在该模型中,column familiy名称被改为“f”以减少数据存储空间和网络传输数据量,同时将前面的“宽表”改为“窄表”,即表中的rowkey由客户名称与被关注客户名称组合而成,column family中只有一列。
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » HBase实现社交关系数据存储
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » HBase实现社交关系数据存储