用图数据库处理复杂关系,附多个开源图数据库比较。

钉钉(DingTalk)是阿里巴巴集团专为中国企业打造的免费沟通和协同的多端平台,提供PC版,Web版和手机版,有考勤打卡、签到、审批、日志、公告、钉盘、钉邮等强大功能。钉钉因中国企业而生,帮助中国企业通过系统化的解决方案,全方位提升中国企业沟通和协同效率。
借助阿里云图数据库GDB,钉钉可高效处理百亿量级人与人、人与企业、企业与企业间的复杂关联关系数据,并构建了工作场景下的知识图谱,具备深度关联关系的挖掘能力。在推荐加人,拉新促活等场景取得了良好效果。
钉钉天然存在有人人、人企、企企间的复杂关系,形成庞大的用户、组织网络,使得基于网络的社区聚类、关系裂变传播等成为可能,进而用于大规模的拉新、用户促活、工作人脉沉淀等等。经过多年的建设,钉钉已经沉淀了各个数据域的数据资产,但仍存在如下问题:
1)缺少统一的关系数据沉淀。例如需要查询一个人在多个组织下有多少个同事时,需要多次关联用户组织关系表才能获得。特别是在线推荐服务场景,需要做大量的关系扩散计算,分散的关系数据已经很难支撑起算法的进一步发展。因此需要构建一个统一的关系数据服务,提供离线和在线的数据查询及多度图扩散,而现有的传统关系型数据库已捉襟见肘。
2)缺乏关系的深度认知和推断。目前钉钉的数仓建设主要围绕着客观数据,而在具体的业务场景中,往往需要对数据更深入地认知和推断。例如在推荐加人场景中,我们需要进行同企识别,推荐用户的潜在同事。
钉钉团队经过多方调研论证,发现图数据库在处理海量关联关系数据方面具有查询效率高,模型直观,编程简便的独有优势,在知识图谱、社交推荐等领域有广泛应用,非常契合钉钉知识图谱应用场景。
阿里云GDB是一款支持ACID事务,兼容Gremlin和Cyper两大主流查询语言,提供99.95%企业级高可用保障的全托管在线图数据库。并提供免费的专家服务,给客户提供建模指导和一对一的解决方案。


图数据库GDB支撑了钉钉百亿量级用户关系的存储和高效查询,为钉钉构建知识图谱,提供了深度关联关系的挖掘能力。在推荐加人、拉新促活等应用场景得到广泛应用:
推荐加人。在钉钉上创建团队后,管理员需要从通讯录一个个选择,或者手动输入手机号码进行加入,加人效率低。如果能为用户推荐一些潜在同事,帮助其实现一键添加,那么用户组建团队就会更加方便。推荐加人属于职场社交推荐,我们基于DingTalk Graph实现了整个召回、排序链路。


拉新促活。邀请好友是App产品常用的一种拉新、促活方式。通过激励用户邀请好友、创建组织,可以为钉钉带来新用户、曝光度、留存率、活跃度,甚至形成裂变。我们基于DingTalk Graph构建了一个邀请能力模型(Invitation ability Model)来建模一个人在其工作社交网络中的邀请能力。
通过阿里云图数据库GDB实现了百亿点边存储和ms级查询能力,针对图结构数据的存取特点,在图计算层和图存储层均进行了高度优化,满足钉钉百亿量级点边海量数据的多度关系毫秒级查询需求。服务的高可用,99.95%企业级SLA保障:GDB采用主备高可用架构,提供99.95%企业级SLA保障。
当主节点故障时,系统自动切换,保障钉钉的业务连续性。易用和易运维,云服务全托管,提供备份恢复、自动升级、监控告警、实例升降配等丰富功能,大幅降低钉钉使用和维护图数据库的难度,使钉钉可以专注于应用本身的开发。
如今,钉钉的注册用户数已突破3亿人,成长为中国领先的智能移动办公平台。而拉新促活功能为钉钉用户数增长起到了很好的促进作用,推荐加人功能使企业在创建团队钉群场景变得简单高效。面向未来,钉钉期望与阿里云图数据库GDB共创,构建千亿量级关系数据的高效处理能力,在智能推荐、社交网络等场景为用户提供更为丰富的功能。

附开源图数据库比较

数据库按照类型分为原生图模型数据库(代表Neo4j、JanusGraph、TigerGraph等)和多模型数据库服务(代表ArangoDB、OrientDB等),就目前的趋势来说虽然Neo4j的市场占有率是第一,但是越来越多的厂商尝试开始使用ArangoDB等多模型数据库。

1. OrientDB是第二代分布式图数据库,以混合数据模型为特点,它包括可以在最复杂的场景中使用复制和分片,并以Apache2许可证提供开放源代码。ORIENTDB工作速度快,能够在最常见的硬件上每秒存储220000条记录,并且支持无模式、完整和混合模式,可以使用SQL作为查询语言之一。ORIENTDB使用身份验证、密码和静态数据加密等方式为所有机密数据提供安全保护。OrientDB为确保更好的性能,最近引入了节点的快速重新同步,即使处理数十亿条记录,遍历速度也不会受到影响。

授权许可:商业软件(有开源社区版)

2. NEO4J图数据库优于其他非原生图解决方案在如下几点。Neo4J使用原生的图存储,以高度自由且规范的方式管理和存储数据。它可以明快地显示数据每个相关部分之间的链接,也可以在数据库查询中忽略不必要的细节。对比非原生图解决方案中,随着信息量的增加,使用面向对象的数据库存储数据库使数据操作变得越来越慢。Neo4J可以以每秒一百万条的惊人速度提供结果,因为数据中的链接部分或实体在物理上是已经相互连接的。NEO4J的另一个特点是ACID事务,它确保实时显示数据的合法性和准确性,这是企业级应用的重要特性。

授权许可:商业软件(有开源版,但限制数据库规模)

3. Arangodb以一种非常创造性和灵活的方式安排数据。数据可以存储为键或值对、图或文档,所有这些都可以通过一种查询语言访问。为了更安全的选择,查询中可以使用声明性模型。用户可以在一个查询中组合不同的模型及其特性的原因是,ArangoDB对所有数据模型都使用相同的核心和相同的查询语言。

展开阅读全文

本文系作者在时代Java发表,未经许可,不得转载。

如有侵权,请联系nowjava@qq.com删除。

编辑于

关注时代Java

关注时代Java