概述¶
GraphScope Interactive是GraphScope Flex的一个专门构建版本,旨在以惊人的速度处理并发图查询。其主要目标是在给定时间范围内处理尽可能多的查询,强调高查询吞吐率。要快速开始使用GraphScope Interactive,请参考入门指南中的指引。
坚实基础¶
GraphScope 交互式 Flex 模式¶
GraphScope Interactive 建立在两大关键支柱之上:
GraphScope Flex: GraphScope Flex是GraphScope的新架构,为GraphScope Interactive提供了坚实基础。它专为处理高QPS(每秒查询量)场景而设计,是满足GraphScope Interactive高吞吐需求的理想基础。
破纪录的基准测试结果: GraphScope Interactive基于破纪录的LDBC SNB交互式基准测试结果构建,在该基准测试中实现了33,180.87 ops/s的吞吐量,使其成为最高效的图查询处理系统之一。
主要特性¶
GraphScope Interactive 具备以下关键特性:
卓越的查询吞吐量: 如前所述,GraphScope Interactive的基础建立在基准测试的成功之上,使其能够快速处理数万次查询。
多语言支持: GraphScope Interactive 支持 Neo4j Cypher 查询语言。Cypher 也可用于编写存储过程。对于偏好更全面方法的用户,存储过程开发也支持 C++ 编程。
面向未来的扩展能力:基于GraphScope Flex的强大功能,GraphScope Interactive具备出色的适应能力:
支持多种查询语言:在不久的将来,GraphScope Interactive将扩展其对GQL的语言支持,进一步增强其多功能性。
可扩展性:GraphScope Interactive具备分布式处理的潜力。这意味着只需少量工作即可扩展以处理更大规模的图数据,确保随着数据增长仍保持高效。
海量图数据支持: 为提升系统吞吐量与查询性能,我们默认将所有图数据存储在内存中。当遇到内存无法完全容纳的超大规模图数据时,系统会将溢出数据卸载至磁盘存储。这种方案虽能有效处理海量图数据,但可能导致吞吐量下降。未来我们将采用主从架构设计,通过将工作负载分布到多台机器上来提升并发查询性能,从而优化资源利用率以提高吞吐量。
属性图模型与图查询¶
GraphScope Interactive 支持属性图模型,可以直观地表示复杂结构。它还支持多种类型的图查询,包括:
遍历查询: 这类查询涉及从一组源顶点出发遍历图,同时满足遍历路径上顶点和边的约束条件。它通常只访问图的一小部分而非整个图。
模式匹配: 给定一个小型图作为模式,模式匹配的目标是计算图中所有该模式的出现实例。通常涉及关系操作来投影、排序和分组匹配到的实例。
Cypher查询语言¶
GraphScope Interactive 支持 Cypher,这是一种由 Neo4j 开发的图查询语言。Cypher 不仅为查询和操作图数据提供了高效且可扩展的解决方案,还提供了一种可视化的方式来匹配模式和关系,使其直观且易于使用。
在GraphScope交互式引擎中,Cypher查询语言的应用主要涵盖两大领域:
实时读取查询: 用户可以直接向引擎提交Cypher读取查询。这些查询会自动编译成动态库执行,提供即时结果。
存储过程: 用户可创建一个包含指定参数的Cypher文件,参数格式为
${param_name}。通过管理工具,该代码可被编译为存储过程并注册到系统中。之后即可通过Cypher的CALL子句调用该存储过程。
Cypher端点默认启用,监听端口7687。您也可以通过设置compiler.endpoint.bolt_connector属性来关闭bolt连接器或自定义端口。更多详细信息,请参阅Configuration指南。关于如何连接Cypher端点的说明,请查看GettingStarted。
限制¶
GraphScope Interactive 目前仅支持部分 Cypher 读取子句,具体支持范围请参阅supported_cypher。暂未提供写入和DDL(用于定义和修改模式)功能。
写入操作设计为通过内置存储过程完成。目前不支持写入操作。
目前不支持ACID,但计划在不久的将来提供支持。