图数据库的发展状况如何?

最佳答案 匿名用户编辑于2023/02/20 15:12

以下将从业务和技术两个角度说明图数据库的发展状况。

从业务角度,最开始的时候图的应用主要集中在参考数据领域,比如说知识图谱、产品图谱等 各种各样的知识图谱。这种基于一些事实关系的数据是非常典型的相对静态数据,数据量较小,随 着业务的发展,业务需要增加基于交易数据的维度进行分析,交易数据的数据量比较大,且动态增 加,所以这个时候对图数据库的数据处理能力、横向扩展能力的要求也会越来越高;再往后,更加 成熟的图应用就不仅局限在静态的关系数据和交易数据,还会增加各种各样的事件和行为数据的分 析,事件和行为数据的增长量是井喷式的,通常会形成 TB 级、PB 级的海量数据。在图应用成熟 度这个发展历程中,先是管理企业的或者说是我们自身的核心数据,变成进行交易数据分析,最后 升级为进行事件和行为的分析,随着这样的图应用的成熟度发展,对底层的图数据库技术的要求也 是在逐步发展的。

从技术角度,图数据库发展至今可分为三个阶段:第一个阶段是在 2007 年左右,该阶段的特 点是部署简单且底层原生存储,原生图存储指同时满足原生图存储(native graph storage)和原生图处理(native graph processing)两个要素,即使用专门适用于图数据库的存储结构,底层 存储就是以免索引邻接的数据结构存储,在存储层实现免索引邻接,不依赖于第三方的存储组件, 如 Neo4j。

随着 2013 年左右,大数据时代的到来,渐渐的就无法承载大量的数据了,因此 graph2.0 时代应运而生,该时代以分布式图数据库为代表,使用非原生图存储,即底层使用非图的存储结构, 在处理层近似实现免索引邻接,依赖于第三方的存储组件,如 RocksDB、HBASE 等。该阶段的 图数据库扩展性好,但因为非原生的架构导致查询性能,尤其是深链查询性能不高。且该阶段产品 的图计算主要依赖于第三方开源计算引擎,如 Spark GraphX,图数据库本身不能提供图计算能力, 在计算的时候需要通过 ETL 将全量数据加载到内存中,在内存中模拟图结构进行计算,当底层数 据发生变化时,需要重新通过 ETL 加载全量数据到内存,这种架构导致产品使用的局限性,只适 用于 T+1 的离线分析场景,无法满足业务对实时计算的要求,如 JanusGraph。

第三代图数据库 采用分布式+原生的架构,兼顾第一代图数据库的原生架构和第二代图数据库的分布式架构。即满 足业务的快速的查询能力,又兼顾水平扩展能力,同时能够智能化地辅助商业决策,如 Galaxybase、 Tigergraph。