如何在图数据库上实现图计算框架
图数据库解决的是图数据的查询问题,图计算框架解决的是图计算的问题,首先我们要搞清楚二者如何区分,再讨论如何结合。
图查询:主要面向的是路径查询。比如从一点出发的两跳邻居;再如从点A出发3跳内和B点的路径;
图计算:对全图节点进行迭代运算。比如PageRank,需要每一个节点从一开始就要参与计算;再如计算图中存在的联通子图;再如计算图中度数大于一百万的节点。
图计算实际上是迭代计算,因此图计算框架实际上是迭代计算框架,其核心工作是对所有节点进行多次迭代。
因此,目前的图计算框架基本与底层存储脱离是有其合理性的,因为迭代计算必须要和磁盘脱离,否则IO极高导致集群性能急剧下降,而把数据全部load到内存中相当于重新构建了新的集群。相应的优化点有:1)计算之前需要把整个图load到计算框架对应的节点中,这样带来的问题就是更新的数据不能被感知到,如何实现增量更新;2)BSP框架的超步同步,需要等待所有节点完成才能进行下一步,延迟较高导致吞吐率降低。如何去掉。
其他问题:
1、GC问题。如何优化,仅仅在使用层面?;
2、数据切分模型。GraphX有多种数据分配模型,用户可以自己选择,有没有更好的方式;
3、如何添加辅助索引加快遍历过程。
从上面可以看出,图计算框架并不合适图遍历,那么基于图遍历的计算有哪些呢?比如计算两点间最短路径,如果使用Gremlin的接口是可以实现的,但是效率上有些问题。
如何在图数据库上实现图计算框架相关推荐
- 中秋邀请共赏图数据库-蚂蚁集团图数据TuGraph 正式开源
目录 前言 1.五道口+蚂蚁集团的系统长什么样 2.性能拉满,能抗能打 优点: 缺点: 一.TuGraph,比关系数据库更懂关系 1.更懂关系的图数据TuGraph 2.图数据发展的三个阶段 2.1第 ...
- neo4j 图数据库初步调研 图数据库与关系型数据库差异-f
相关文章 neo4j 图数据库初步调研 三元组.属性图.图模型.超图.RDF demo项目(python+vue) 本文目录 相关文章 一.技术关键字 二.前言 三.图数据库与传统数据库 1.反规范化 ...
- 知识图谱 图数据库 推理_图数据库的知识表示与推理
知识图谱 图数据库 推理 图形数据库及其技术生态系统可以为知识表示和推理问题提供优雅,有效的解决方案. 要了解这种说法,我们必须首先了解什么是图形. 图是一种数据结构. 图数据结构的类型很多,但出于本 ...
- 如何在图数据库中训练图卷积网络模型
在图数据库中训练GCN模型,可以利用图数据库的分布式计算框架现实应用中大型图的可扩展解决方案 什么是图卷积网络? 典型的前馈神经网络将每个数据点的特征作为输入并输出预测.利用训练数据集中每个数据点的特 ...
- TigerGraph图数据库创建一个图Schema
以开发版的TigerGraph图数据库为例. 若没有多图权限的话,若TigerGraph中已经有其他图数据,则会执行Drop ALL命令.以下是在gsql环境下执行. 第一步:创建Vertex 命令如 ...
- 大数据图数据库之离线挖掘计算模型
/* 版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/ author: 张俊林 节选自<大数据日知录:架构与算法>十四章,书籍目录在此 对于离 ...
- 分布式图数据库在贝壳的应用实践
导读:你想知道百亿级图谱如何实现毫秒级查询吗?社区众多的图数据库中如何才能挑选到一款适合实际应用场景的图数据库呢?贝壳找房的行业图谱480亿量级的三元组究竟是如何存储的呢?本文将带你探索上述问题并从中 ...
- 突破高连接性能瓶颈,图数据库在银行业这么用
来自:DBAplus社群 本文根据王磊老师在[2018 Gdevops全球敏捷运维峰会-北京站]现场演讲内容整理而成. 讲师介绍 王磊,现任职光大银行科技部数据领域架构师,曾任职于IBM全球咨询服务部 ...
- 蚂蚁金服付志嵩:数据膨胀?关系复杂?如何升级图数据库?
来源:DataFunTalk 本文约3700字,建议阅读5分钟 本次分享主题为图数据库在金融领域的应用. 导读:本次分享主题为图数据库在金融领域的应用,主要介绍蚂蚁金服在金融科技领域的一些图技术应用探 ...
最新文章
- windows下使用aspell开启emacs的单词拼写检查功能
- 11 个 AI 和机器学习模型的开源框架
- Silverlight 2.0学习笔记——XAML
- Product mass creation tool
- ANSYS-CFX,计算时报错,内存参数报错,return code 1【终极解决方案】
- 机器学习速成课程 | 练习 | Google Development——编程练习:使用神经网络对手写数字进行分类
- Python中各个模块的介绍和使用
- 自定义异常throw
- 前端ES6+基础总结
- 中国桌面云三甲出炉,华为、深信服、安超云位居市场领导者
- 使用wget下载KITTI数据集
- 英语·句子的五大结构
- 笔迹心理学(2): 功能设计
- WINVNC源码阅读(七)
- 使用stm32配置自定义的HID设备
- 什么设备升级android9,三星升级Android 9 Pie设备公布:S9明年1月上线
- C语言实现两个多项式加法与乘法
- 鹏业云计价i20(四川)CJZ阅读模式功能
- windows删除大量文件的优秀方式
- bm22 bm23 bm1
热门文章
- Java游戏脚本实现
- 使用js修改图片像素颜色并保存
- 镭速——FTP服务器概念详解
- 如何查已经欠费的联通手机号码
- 打瓶颈,破性能,性能大牛教你怎么玩转性能测试
- uniapp团购商城源码在哪里下载?
- Ubuntu16.04如何设置自动休眠时间
- 此计算机上无法找到autocad2017,电脑安装cad2017时提示错误:无法定位inf文件怎么办...
- 编写函数 int min(int x ,int y,int z),实现求出三个数中的最小值。要求在main函数中输入三个整数,然后调用min函数,最后将求得的最小值输出。
- Openstack-nova(placement)组件部署流程