业务场景
某社交软件,需要基于用户的好友关系向用户做二度人脉的推荐。
系统中保存的关系有两种,一种是A用户的通讯录中保存了B用户的电话号码,另一种是A用户在app上面关注了B用户。
以下图所示的关系为例:
张三和王五,李四,赵六是好友,我们需要向张三推荐孙八、杨九和钱七。
购买HGraphDB服务
在这个例子中,我们使用HGraphDB来实现二度好友推荐的需求。HGaphDB是阿里云HBase产品提供的图存储引擎,基于Apache Tinkerpop栈构建,并使用Gremlin语言进行遍历,更新和查询。HGaphDB图数据库适用于存储、管理、查询复杂并且高度连接的数据,图库的结构特别适合发现大数据集下数据之间的共性和特性,特别善于释放蕴含在数据关系之间的巨大价值。HGaphDB引擎本身并不额外收费,仅收取云hbase费用。
可以参考HGaphDB文档完成实例的购买。
建模
人脉关系是一种典型的图数据结构,而且图可以很方便的进行二度关系的查询,我们可以使用图数据库来实现这个需求。我们把每个用户作为一个顶点,用户之间的关系作为边。
作为一个例子,我们使用Gremlin Console来完成对上述关系的建模,以及示例图的录入。Gremlin Console的安装和配置参见HGraphDB相关文档。
按照文档安装并配置好Gremlin Console之后,我们使用如下语句连接到HGraphDB,创建一个新的图:
-