探索图数据库在数据资产可视化中的应用
前言:
随着社交、电商、金融、物联网等行业的快速发展,现实组成了一张庞大的关系网,传统数据库很难处理关系运算,大数据行业需要处理的数据之间的关系随着数据量呈几何指数增长,亟需一种支持海量复杂数据关系运算的数据库,图数据库应运而生。本文将探讨图数据库在数据资产可视化中的应用。
目录:
1.图数据库介绍
2.关系型数据库和图数据库的区别
3.探索图数据库在数据资产可视化中的应用
1.图数据库介绍
这张图是一个社交网络场景,每个用户可以发短信、发邮件,分享信息。这些都是最基本的增删改查,也是大多数研发人员对数据库做的常见操作。而在研发人员的日常工作中除了要把用户的基本信息录入数据库外,还需找到与该用户相关联的信息,方便去对单个的用户进行下一步的分析,比如说:我们发现张三的账户里有很多关于推理小说和音乐方面的内容,那么我们可以据此推测出他可能是一名学生,从而推送他可能感兴趣的内容。
但是在数据分析过程中,会出现各种各样的场景,比如说在一个典型的社交网络中,常常会存在“谁认识谁,谁上过什么学校,谁常住什么地方,谁喜欢什么餐馆”等查询,这种查询在数据分析过程中是很常见的,但是这种操作会因为数据库的选择不同而对性能产生巨大的差异。
传统数据库解决思路
传统解决上述问题最简单的方法就是建立一个关系模型,我们可以把每个员工的信息录入表中,存在诸如 MySQL 之类的关系数据库,图片展示的是最基本的关系模型图。
基于上述的关系模型,依据需求,就不可避免的涉及到很多库表的join操作,实现的查询语句可能也会很长,并且这种代码可读性很差,而且会有严重的性能问题。关于传统关系数据库的性能问题我们后续分析。
图数据库解决思路
在传统数据库虽然运用 JOIN 操作把不同的表链接了起来,从而隐式地表达了数据之间的关系,但是当我们要通过 A 管理 B,B 管理 A 的方式查询结果时,表结构并不能直接告诉我们结果。如果我们想在做查询前就知道对应的查询结果,我们必须先定义节点和关系。使用图结构建模,节点和关系先定义是图数据库和别的数据库的核心区别。
打个比方,我们可以把经理、员工表示成不同的节点,并用一条边来代表他们之前存在的管理关系,或者把用户和商品看作节点,用购买关系建模等等。而当我们需要新的节点和关系时,只需进行几次更新就好,而不用去改变表的结构或者去迁移数据。根据节点和关联关系,传统数据库建模可以转换为图片所示建模:
在通过图数据库原生图查询语言(Cypher)进行建模和查询后,近百行的sql代码变成3,4行的代码可以明显的看出图数据库在数据表达上的优势:
MATCH (boss)-[:MANAGES*0..3]->(sub), (sub)-[:MANAGES*1..3]->(userid) WHERE boss.name = “zhangsan” RETURN sub.name AS list, count(userid) AS Total
什么是图
图的定义:A database that uses graph structures for semantic queries with nodes, edges and properties to represent and store data – independent of the way the data is stored internally. It’s really the model and the implemented algorithms that matter.
图数据库是基于图模型的数据库。相比较于关系型数据库,图数据库是真正注重“关系”的数据库。图数据库的主要职能是管理图数据,因此需要支持高效的对顶点/边的查询与更新;为了方便用户的使用,通常还需要增加对事务(transaction)的支持,从而保证并发操作下的正常运作。
图广泛存在于现实世界中,从社交网络到金融关系,都会涉及大量的高度关联数据。这些数据构成了庞大的图,图数据库就是呈现和查询这些关联的方式。这种联系形成了一种互相关联的数据,联系才是数据的本质所在。传统的关系型数据库并不能很好地表现数据的联系,而一些NoSQL(Not Only SQL,非关系型数据库)数据库又不能表现数据之间的联系。同样属于NoSQL范畴的图数据库是以图的结构形式来存储数据的,它所存储的就是联系的数据,是关联数据本身。
然而关联数据中的联系本来就很复杂,若要在关系型数据库中使用结构化形式来表现这种联系,则一般不能直接表示,处理起来既烦琐又费事,并且随着数据的不断增长,其访问性能将日趋下降。无数的开发人员和数据库管理人员都或多或少地使用过关系型数据库,在其应用的规模化进展过程中,对于数据库的性能优化往往捉襟见肘、陷入窘境。图数据库没有模式结构的定义,也不需要这些定义,它使用非结构化的方式来存储关联数据,所以能够直接表现数据的关联特性。
图数据库的发展趋势
在众多不同的数据模型里,关系数据模型自20世纪80年代就处于统治地位,而且出现了不少巨头,如Oracle、MySQL,它们也被称为:关系数据库管理系统(RDBMS)。然而,随着关系数据库使用范围的不断扩大,也暴露出一些它始终无法解决问题,其中最主要的是数据建模中的一些缺陷和问题,以及在大数据量和多服务器之上进行水平伸缩的限制。同时,互联网发展也产生了一些新的趋势变化:用户、系统和传感器产生的数据量呈指数增长,数据量不断增加,大数据的存储和处理;新时代互联网形势下的问题急迫性,这一问题因互联网+、社交网络,智能推荐等的大规模兴起和繁荣而变得越加紧迫。而在应对这些趋势时,关系数据库产生了更多的不适应性,从而导致大量解决这些问题中某些特定方面的不同技术出现,它们可以与现有RDBMS相互配合或代替它们。过去的几年间,出现了大量新型数据库,它们被统称为NoSQL数据库。其中图数据库从最近十年的表现来看已经成为关注度最高,也是发展趋势最明显的数据库类型。
1 2 3 4 下一页>