|探索图数据库在数据资产可视化中的应用


?
|探索图数据库在数据资产可视化中的应用
本文插图

转载本文需注明出处:微信公众号EAWorld , 违者必究 。
前言:
随着社交、电商、金融、物联网等行业的快速发展 , 现实组成了一张庞大的关系网 , 传统数据库很难处理关系运算 , 大数据行业需要处理的数据之间的关系随着数据量呈几何指数增长 , 亟需一种支持海量复杂数据关系运算的数据库 , 图数据库应运而生 。 本文将探讨图数据库在数据资产可视化中的应用 。
目录:
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.


推荐阅读