大数据时代的新型数据库 — 图数据库 Neo4j 的应用-阿里云开发者社区

开发者社区> 中生代技术> 正文
登录阅读全文

大数据时代的新型数据库 — 图数据库 Neo4j 的应用

简介:
640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

概览

微云数聚(北京)科技有限公司是一家实力雄厚的大数据技术公司,由移动互联网技术专家团队、大数据专业团队和建模博士团队组成。微云数聚专注于研究图数据库技术及其应用,是世界领先的图数据库Neo4j在中国的战略合作伙伴和官方代理,他们研制的Neo4j简体中文扩展版,是专为中国企业量身打造、符合中国企业习惯的图数据库系统,除了提供简体中文界面,还支持节点显示成图片,显示效果由数据驱动;增加了智能查询,并且开发了简便导入Excel、MySQL和Oracle的工具--导入精灵,这些扩展将极大促进Neo4j在华语地区的推广使用。微云数聚在华为的帮助下,在推介Neo4j的过程中,与中国互联网、大数据企业客户建立了良好的合作和信用关系,为Neo4j的市场开拓奠定了良好基础。

图数据库是大数据时代的一种新型数据库,它是基于数学中图论的算法而实现的高效处理复杂关系网络的新型数据库系统。它善于处理大量的、复杂的、互联的、多变的网状数据。其效率远远高于传统的关系型数据库的百倍、千倍甚至万倍。图数据库特别适用于社交网络、实时推荐、金融征信系统等广泛的领域。领英(LinkedIn)、沃尔玛、CISCO、HP、eBay等全球知名企业都在使用图数据库Neo4j。中国企业也在逐步开始用图数据库来构建自己的应用,尤其在征信领域,工商总局、天眼查、启信宝、企信宝、企业信用信息、企查查等APP都用了图数据库,著名的股票信息软件万德也已经开始使用图数据库。华为、联想也在密切关注图数据库Neo4j,考虑将它纳入PaaS平台。作为做了一辈子IT、研究了一辈子数据库的张帜,研制出具有中国自主产权的图数据库,将是他人生下一步的关键目标!


领英是如何实现朋友推荐的?沃尔玛是如何实现零售商品推荐的?因为他们用了图数据库 Neo4j,一种擅长处理复杂网状关系的新型数据库系统。本次分享包括如下内容:

一、图数据库的基本概念;

二、图数据库的应用案例;

三、图数据库的国产化进程。

直播实录

640?wx_fmt=png&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


欢迎来到直播间,大家好。我是微云数聚(北京)科技有限公司的创始人张帜,目前主要做两件事,第一件是敏捷商务智能,目前已经有很多互联网公司用到这个产品;第二件是国产化图数据库,也就是今天晚上要跟大家分享的数据库。华为、联想、中科院、招商银行、电信、移动等都在关注这个产品,有可能成为合作伙伴和潜在的用户。

 

这次分享的主题是大数据时代的新型数据库 — 图数据库Neo4j 的应用,大家一定用过领英 (Linkedin),很可能关心过领英如何处理社交数据的,是用什么技术实现朋友推荐的,大家也可能上过沃尔玛的网络商店,也可能好奇他是如何精准的为你推荐商品的。今天我们就一起揭开他们的神秘面纱。原来他们并没有什么秘密,他们只是用了一个新型的数据库,也就是我们今天要介绍的图数据库Neo4j。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

今天分享的内容分三部分:基本概念、应用案例、国产化进程。

国产化进程,主要讲微云数聚在国产化方面所做的努力和工作,给大家做个汇报。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

什么是图数据库,从理论依据来看,不是图形、图片的处理,而是基于数学里的图论的理论和算法而实现的高效处理复杂关系网络的新型数据库系统。大家都学过图论,图论里处理的就是点和线的关系,还有最小路径、最短路径、最佳运输路径等等。图数据库就是基于图论而实现的数据库系统,和我们知道的mySQL、Oracle以及Hadoop思路完全不一样。它实际上就是处理关系的、处理网络的数据库系统。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

那么我们从另一个角度看,图数据库是善于处理大量的、复杂的、互联的、多变的数据。它处理这些数据的效率,远远高于关系型数据库。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

从应用角度来看,图数据库适合于哪些方面呢:例如领英的社交网络、沃尔玛的零售商品实时推荐、征信系统(在中国应用征信系统前景非常好)、人工智能(如阿法狗)。如果使用图数据库来记录数据就会非常简单。在这几个领域有很广泛的应用,当然,不仅仅是这些方面,其他方面也有很多的应用。今天跟大家介绍这些,只是抛砖引玉,大家可举一反三,在自己的行业领域找到广泛应用。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

从数据库的结构来看,它包含的概念非常的简单,他包含的概念只有节点和关系。节点可以带标签,节点和关系也都可以带属性。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这里有两个人,一个汽车,共三个节点,每个节点,都打了标签,上面的节点打了“个人”标签,下面节点打了“汽车”标签。

 

每个节点都可以带属性,第一个节点带了姓名、生日和微信三个属性。第二个节点带了姓名和生日两个属性。汽车这个节点,带有品牌和型号两个属性。这里,两个个人节点带的属性是不一样的,这说明同类型的节点不一定要有同样的属性。每一个节点的属性可以根据需要任意设置,可以多可以少,可以有可以无。上面两个节点之间有相爱的关系,爱这个关系是带箭头的,也就是有方向的。下面这个关系“住在一起”也是关系,也是可以带属性的,属性开始日期的值为2011年1月10日。

 

大家看到,图数据库模型的结构非常的简单,就是节点和关系。节点可以带属性、标签,关系也可以带属性。

 

接下来我们看看在Neo4j里怎么创建节点和查询节点的。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

大家看到这个CREATE语句就创建了节点和节点之间的关系。创建节点和关系就是这么简单。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

MATCH是查询语句,这个查询语句和CREATE的差别只在MATCH和CREATE单词的不同。如果我们把第一个节点中的姓名属性去掉,查询的结果就是所有爱李四的人;把第二个节点的姓名属性去掉,查到的就是所有相爱的人。

 

所以图数据库处理这种关系,语句非常直观和简洁。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

那我们来讲一下为什么要使用图数据库。我们已经讲到了,领英和沃尔玛都用到了图数据库,用来处理复杂的关系。那么为什么用图数据库而不是关系数据库来处理这种关系数据呢?

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

世界本来就是由各种关系组成的。都是节点和节点之间的关系,如图所示,这个图仅仅显示了人和人之间的关系。现实中,不仅仅是人和人,也包括人和物,人和事件等复杂的关系。如果用关系数据库,效率非常低,因为它的表达不直观,计算要用到 join(连接)等复杂的关系,而图数据库是最适合处理这种网状关系的。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这一页是说关系型数据库处理复杂关系的时候,建模难、性能低、查询难、扩展难。导致传统的数据库不能处理实时的数据关系。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

现在大家都在说NoSQL,NoSQL也不是为处理关系创建的,也不能处理好关系数据。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

而唯独只有图数据库它是专门为处理复杂关系而创建出来的,它具有开发的优势和部署的优势。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

我们现在来看关系模型和图的模型,将这两个模型作对比。左边这个关系模型,技术人员能够看得懂,非技术人员就不一定能看得懂了。而右边这个图模型,不仅技术人员,就连非技术人员也很清楚的看懂,因为它非常的直观。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

我们经常在白板上画一些模型,用来讨论我们的项目,我们通常是画圈、画线。如果用关系型数据库来处理的话,就要把它映射成表格后再处理。如果用图数据库处理的话,就和白板上的模型没有什么差别,所以说白板模型就是物理模型。现在这个图就是我们的物理模型,在图数据库中,表现现实世界的关系就这么直观。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

为什么要使用图数据库,这张图是按照数据库类别的一个发展趋势图,绿线代表的就是图数据,最底下的红线是关系型数据库。这张图从13年到16年,从这个图能看出来,关系数据库已非常成熟,应用也非常饱满,所以发展趋势不再往上升了。相反的,图数据库是崭新的数据库技术,随着互联网的发展,图数据库的应用需求也越来越大,人气指数也越来越高。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

Neo4j是图数据库的一种,为什么要选用Neo4j呢?下面我们用图和数据来看看,为什么要用Neo4j。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

Neo4j是图数据库的一种,为什么要选用Neo4j呢?下面我们用图和数据来看看,为什么要用Neo4j。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这是图数据库类别里的人气排名。Neo4j相比其他数据库,要遥遥领先。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

从趋势图来看,在图数据库的类别里,Neo4j也是遥遥领先。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

Neo4j建立了图数据库里最大的生态系统。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这是各种著名媒体报道的截屏。Forester预计2017年,有25%的企业使用图数据库,根据我们推广的结果看,国内很多厂家已经开始在用Neo4j了。所以达到25%比例这个目标会提前实现。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

Neo4j的关键产品特征。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

社区版不支持集群,免费。企业版支持集群,是收费的。前面有负载均衡,后面有三个Neo4j服务器,其中一个标有五星,表示它是Master,其它的是Slave。如果Master出现故障,会有一台Slave主动变为Master。这是一个很好的负载均衡的机制。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

未来如何架构你的应用呢?以前的应用,是在上面这条线,从用户到应用,到数据库。未来我们用上Neo4j,在下方增加支路来访问Neo4j图数据库。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这是一个有趣的图数据库应用。有银行人员向政府举报,在瑞士汇丰银行,可能有潜在的诈骗、贿赂和逃逸事件。政府将收到的一堆文件转给ICIJ(国际记者调查组织)进行分析调查。这些记者是不懂IT的,如何处理这么多数据呢?技术顾问推荐他们使用图数据库Neo4j。他们装了一台Neo4j,然后把数据导进去,直接在Neo4j界面上进行查询,居然查出了成千上万的诈骗、贿赂和逃逸的事件。我举这个例子说明,Neo4j不仅仅是技术人员,也是很多非技术人员可以掌握的工具。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这张图讲演员之间复杂的关系。这张图好看,但不好用,我们要找不同人之间的关系,会非常麻烦,而且不一定能找全。如果我们把它导入到Neo4j里面去,就会变得好用。

0?wx_lazy=1

这是Neo4j的语法,把演员之间的节点和关系,输入进去。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

可以得出这张图,这张图好用了,但不好看。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

我们是希望又好用又好看。这张图有图片了。我们的图片也支持gif。是微云数聚把它做的又好用又好看。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这个图是一家集团公司的投资网络和担保网络。图中,中航工业集团在正中心,直接连的是子公司,再往外是孙子公司。圆圈的大小代表了注册资本的大小,红线代表投资关系,其粗细代表投资资本的多少,绿线代表担保关系,其粗细代表担保的多少。

 

这个图里,微云数聚又做了贡献,在原版中,这个图中的节点大小是一致的,而微云数聚可以让这个圆圈的大小由数据驱动,投资资本大,圆圈就大。数据驱动这个功能,是微云数聚为Neo4j在本地化过程中所做的扩展。

 

现在可以针对这个图进行计算。比如计算亏本网络,即将所有净利润小于0的公司组成的网络找出来。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这个是舆情分析的应用,这个语句是查询标题中具有“性福”两个字的邮件的传播路径,红色是发邮件的人,蓝色是接收邮件的人。从这张图可以看出,公安局如果要抓发邮件的人,就直接抓最中心的这个人,他是始作俑者。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这是另一个舆情分析的例子,我们用新浪的数据计算出大V之间的团伙关系。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这是对股票投资的数据查询,我们把两千多只股票,和每只股票前十大股东的情况输入进去了。这个是查询名称中包含五矿的所有股份的投资情况。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

还有一个功能,就是数据的钻取,鼠标双点击某个节点,可以展开这个节点的其它关系。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

第一个就是沃尔玛,用它来做实时推荐。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

左边是实时推荐,右边是以这个人为中心的消费习惯,中间是商品和其他商品之间的内在关系。当这个人点击了中间这个商品,系统就对这两个网络进行计算,计算出这个人可能会对哪些商品感兴趣,并在左边实时显示出来。这是沃尔玛的案例。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

思科用它来做组织管理。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这是欺诈检测的应用。四个独立身份的人,每个人都有若干张银行卡,他们用每个卡到银行贷款或者借款4K美金,每个卡的风险不是很大。但是我们通过关系分析,发现上面两个人,经常给同一个电话打电话,左边两个人,经常往同一个地址寄邮件,底下两个人经常给同一个电话打电话,右边两个人,经常往同一个地址寄邮件。这四个人在某种程度上是一个合成身份的人,他们形成了一个诈骗环。如果这四个人,同时来找银行贷款,他们贷款的金额很可能就是72K美金。给银行带来的风险,就是72K的风险。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这是中国在用图数据库的案例,我这里搜集的都是征信系统。他们都用到了图数据库。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这是比较有名的股票系统,万德,也在使用图数据库。大家可以想想,在自己的领域,有哪些方面可以用到图数据库?

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

微云数聚在Neo4j国产化所做的工作:

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

第一个,汉化的版本。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

第二个,图片化显示。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

第三个,数据来驱动,节点和关系的大小、粗细。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

第四个,我们扩展了一个智能查询的功能。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

第五个,我们实现了一个导入精灵,可以直接把Excel、MySQL、Oracle等数据源的数据导入到Neo4j的数据库中去。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1



来源:中生代技术

原文链接


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
官网链接