图
图是一种特殊的数据结构。可以很好地用来存储
大图数据问题
1.大图数据难以存储
- 如果采用内外存储,会涉及到磁盘IO,效率比较低
- 如果分布式存储,会有一定的网络开销
2.大图数据查询计算需要迭代
- 大图数据中,如果存在数据倾斜,关联边比较多的点计算开销是非常大的,远远大于关联边比较少的点,提前完成计算的点需要等待还没有完成计算的点,例如社交网络中明星和普通用户。
3.大图数据安全可用
- 如果将大图数据的存储寄托给云服务商,那么云服务商返回的也是不可靠的。
大图数据查询(基本查询)
- 距离类查询
- 软件剽窃检测
- 检索类查询:对某人某企业相关的企业,需要注意的是,这种查询不只是需要输入结点的相关点,还需要返回节点之间的关系
- 子图挖掘类查询
现在对图数据查询没有统一的定义,但是上面几类查询几乎涵盖了大部分的图数据查询。
解决思路
1.针对基本查询的优化
- 利用数据特征:分治算法、索引优化
- 子查询分解与共享:查询分解、相似算子共享
- 利用算法特性:冗余计算分析、算法特征挖掘、数据结构设计
2.计算任务优化
- 分布式计算:负载均衡、图分配、计算任务分配
- 内外寸交互:查询有界性、图压缩算法
- 系统优化:缓存优化、任务调度
相关
- 针对DFS的优化,深度搜索是O(n)时间复杂度,但是在大图背景下,还是尽可能搞优化
- 基于深度搜索的分支算法
综合来讲,就是根据结点之间能否构成有向无环图,来判定这两个结点是否可以独立计算的
-
子图挖掘查询—稠密子图发现
-
计算任务优化