图数据库是基于图理论或图数据模型的NoSQL数据库类型。IDC调研发现,95%的企业认为图数据库是重要的数据管理工具,超过65%的厂商认为在业务上图数据库优于其他选择。
技术的发展日新月异,当前,市场上涌现出了很多图数据库,从技术角度来看,这些图数据库有不同的技术路线。可以按照不同的维度进行以下分类:
1、原生图数据库 vs 多模数据库
对图形数据库进行分类的一种方法是按其原生格式或多模型格式进行分类。
原生图数据库是“图优先”的。广义上的原生图数据库,指的是只支持图模型。代表有Neo4j、TigerGraph、Galaxybase、StellarDB、NebulaGraph、Ultipa等。狭义的原生图数据库是按照底层存储划分,狭义的原生图数据库,使用原生图存储,代表有Neo4j、TigerGraph、Galaxybase等。狭义的非原生图数据库,即底层存储使用非图模式进行存储,有的使用关系型数据库存储数据,有的使用键值或文档存储存储数据,在逻辑层以图的方式去操作数据,代表有CosmosDB、JanusGraph、Titan等。在大数据量、深度复杂查询以及高并发场景,采用原生图存储的图数据库性能更佳。根据 Gartner 的《2022 年图数据库管理市场指南》,原生图数据库“可能更适用于涉及实时计算、机器学习的资源密集型处理,甚至是对拥有数十亿节点和边的图进行查询”。
多模数据库将图模型与其他NoSQL数据模型相结合。这种“兼收并蓄”的方法可以实现更大的灵活性,而无需承担多个供应商带来的风险和复杂性。例如,ArangoDB和Cosmos DB、OrientDB等是多模数据库。
值得一提的是,随着AIGC和大模型不断发展,很多图数据库如Neo4j、Cosmos DB、ArangoDB、NebulaGraph等也提供了向量检索支持。
2、RDF与属性图
图数据库的另一种分类方法是按其数据结构分类。图数据库通常以RDF、属性图中的一种或两种底层数据模型存储信息:
属性图:将信息存储为节点(实体)、边(实体间的连接)以及描述节点和边的属性。
RDF:使用主体-谓词-对象模型存储信息,不含属性(如“银行账户”--“已”--“警告标志”)。RDF-star 是 RDF 的扩展,允许嵌套三元组,它的引入使这种区分变得不那么重要,但每种选择都有自己的优势。
有专家指出,如果想去刻画一个更客观的实际场景,可能更适合选择属性图,如果构建更偏向于使用三元组就能实现的场景,会考虑采用RDF。在工业界,属性图会多一些,在学术界RDF偏多,RDF在知识图谱的应用也较多。
例如,Neo4j、TigerGraph、Galaxybase、NebulaGraph、StellarDB、TuGraph、嬴图等支持属性图;Ontotext GraphDB、gStore等支持RDF;也有一些图数据库如Amazon Neptune、Stardog等同时支持RDF和属性图。
3、OLTP、OLAP,还是HTAP?
第三种分类方法是从负载支持的角度划分。OLAP(联机分析处理)和 OLTP(联机事务处理)这两种负载在其他数据库模型中可能并不陌生,他们同样也适用于图数据库。
OLTP 最适合欺诈检测、身份和访问管理、供应链、产品推荐等实时场景,在这些用例中,数据不断变化,信息实时添加、删除和修改。在这种情况下,数据库的写入性能非常重要。
OLAP 更适合对更广泛但更静态的数据集进行复杂分析,如商业智能和知识图谱分析。在这些情况下,能够处理复杂的查询最为重要。
HTAP是比较确定的发展趋势,大多数产品都能同时处理这两类负载,但各有偏重。例如,Amazon Neptune的可能更适合 OLTP,而Neo4j 则在 OLAP 用例中很受欢迎。
4、集中式 vs 分布式
以属性图为核心模型的图数据库经历了从单机到分布式的演进,图数据库刚刚兴起时,图数据库采用小规模原生图存储,是单机图数据库,如早期的Neo4j。随着大数据、移动互联网、物联网的发展,数据海量增长,扩展性成为行业痛点,分布式图数据库发展起来。
现在市场上多数的图数据库产品都是采用分布式架构。如TigerGraph、Amazon Neptune、Galaxybase、NebulaGraph、StellarDB、TuGraph、嬴图等。
一些厂商在探索单机分布式一体化,以满足更多业务的多样化需求。
上面我们提到对事务的支持是图数据库比较明确的发展趋势,专家指出图的分布式事务更难一些,首先图数据库的数据结构非常复杂,图上面一条边连着两个点,这两个点只要不在一台机器上,加这条边就是一个跨节点的事务,这是图数据库目前最大的难题之一。
小结
一款图数据库产品的应用效果要考虑很多因素,很难笼统地说一种架构绝对优于另一种架构,一种技术路线好于另一种技术路线。不同的图数据库,各自其对应的应用场景,“与其说哪个技术更有优势,不如说哪个场景可能成为未来的主流,当某一场景成为主流的时候,可能支撑该场景下的技术就成为主流。”
参考资料:
《How to choose a graph database: we compare 6 favorites》