图数据库测试点

本文详细介绍了图数据库的测试要点,包括图结构验证、查询、导入导出、更新、性能、安全性和并发处理等方面,并对比了Neo4j和Nebula的特点,以及使用nGQL和Cypher进行操作的方法。
摘要由CSDN通过智能技术生成

图数据库测试点可以包括以下几个方面:

  • 图结构验证
    验证图数据库是否正确地存储和表示图结构,包括节点和边的关系。

  • 图查询测试
    测试图数据库的查询功能,包括节点和边的查询、路径查询、图算法等。

  • 图数据导入和导出测试:
    测试图数据库的数据导入和导出功能,确保数据能够正确地导入和导出。

  • 图数据更新测试:
    测试图数据库的数据更新功能,包括节点和边的添加、删除和更新操作。

  • 图数据库性能测试
    测试图数据库的性能,包括查询性能、数据导入和导出性能等。

  • 图数据库安全性测试:
    测试图数据库的安全性,包括用户认证、权限控制等。

  • 图数据库并发处理测试:
    测试图数据库在并发访问和并发更新情况下的性能和稳定性。

  • 图数据库扩展性测试:
    测试图数据库在数据量增加和负载增加情况下的性能和扩展性。

主流的图数据库:Neo4j 和 Nebula
Neo4j - 数据模型:https://www.w3cschool.cn/neo4j/neo4j_data_model.html

一、组成部分

1.图空间(space):
图空间用于隔离不同团队或者项目的数据。不同图空间的数据是相互隔离的,可以指定不同的存储副本数、权限、分片等。

2.点(vertex):
点用来保存实体对象,特点如下:
点是用点标识符( VID )标识的。 VID 在同一图空间中唯一。VID 是一个 int64, 或者 fixed_string(N)。
点必须有至少一个标签(Tag),也可以有多个标签。

3.边(edge):
边是用来连接点的,表示两个点之间的关系或行为,特点如下:
两点之间可以有多条边。
边是有方向的,不存在无向边。
四元组 <起点VID、边类型(edge type)、边排序值(rank)、终点VID> 用于唯一标识一条边。边没有EID。
一条边有且仅有一个边类型。
一条边有且仅有一个 rank。其为int64, 默认为0。

4.标签(tag):
标签由一组事先预定义的属性构成。

5.边类型(edge type):
边类型由一组事先预定义的属性构成。

6.属性(properties):
属性是指以键值对(key-value pair)形式存储的信息。

二、数据类型

三、nGQL的符号说明
< >  语法元素的名称。
::=  定义元素的公式。
[ ]  可选元素。
{ }  显示指定元素。
|  所有可选的元素。
…  可以重复多次。

四、nGQL语法
1.创建节点

Cypher 插入特定类型点

CREATE (node:label)

nGQL 插入特定类型点

INSERT VERTEX <tag_name> (prop_name_list) VALUES :(prop_value_list)
2.查看节点

Cypher 查看点

MATCH (n) WHERE condition RETURN properties(n)

nGQL 查看点

FETCH PROP ON <tag_name>

3.删除

Cypher 删除点

MATCH (node:label)
DETACH DELETE node

nGQL 删除点

DELETE VERTEX
4.更新

Cypher 更新点

SET n.prop = V

nGQL 更新点

UPDATE VERTEX SET <update_columns>
5.创建边

Cypher 插入指定边类型的边

CREATE (:)-
[(:)]
->(:)

nGQL 插入指定边类型的边

INSERT EDGE <edge_name> (<prop_name_list>) VALUES <src_vid> -> <dst_vid>:
(<prop_value_list>)
6.删除边

Cypher 删除边

MATCH (:)-[r:relationship-label-name]->()
DELETE r

nGQL 删除边

DELETE EDGE <edge_type> <src_vid> -> <dst_vid>

  1. 查看边

Cypher 查看指定边

MATCH (n)-[r:label]->()
WHERE condition
RETURN properties®

nGQL 查看指定边

FETCH PROP ON <edge_name> <src_vid> -> <dst_vid>
8.指定边查询

Cypher 指定点查指定边

Match (n)->[r:label]->[]
WHERE id(n) = vid
RETURN r

nGQL 指定点查指定边

GO FROM OVER
9.反方向查询
Cypher 则更直观的将指向箭头反向变成 <- 来表示反向关系,nGQL 则用关键词 REVERSELY 来标识反向关系

Cypher 沿指定点反向查询指定边

MATCH (n)<-[r:label]-()

nGQL 沿指定点反向查询指定边

GO FROM OVER REVERSELY
10.无向遍历
Cypher 使用 -[]- ,nGQL使用关键词 BIDIRECT

Traverse edges with specified vertices Cypher

MATCH (n)-[r:label]-()

Traverse edges with specified vertices nGQL

GO FROM OVER BIDIRECT
11.沿指定点查询指定边

Cypher 沿指定点查询指定边 N 跳

MATCH (n)-[r:label*N]->()
WHERE condition
RETURN r

nGQL 沿指定点查询指定边 N 跳

GO N STEPS FROM OVER
12.返回指定两点路径

Cypher 返回指定两点路径

MATCH p =(a)-[.*]->(b)
WHERE condition
RETURN p

nGQL 返回指定两点路径

FIND ALL PATH FROM TO OVER *
13.创建数据
cypher> CREATE (src:character {name:“saturn”, age: 10000, type:“titan”})
cypher> CREATE (dst:character {name:“jupiter”, age: 5000, type:“god”})
nebula> INSERT VERTEX character(name, age, type) VALUES hash(“saturn”)😦“saturn”, 10000, “titan”), hash(“jupiter”)😦“jupiter”, 5000, “god”);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Langchain向量数据库是一种基于向量相似性搜索的数据库系统。它使用了最新的语义搜索技术,可以高效地存储和检索大规模的向量数据。Langchain向量数据库的主要特点包括: 1. 高效存储:Langchain向量数据库使用了紧凑的向量存储格式,可以有效地存储大规模的向量数据。它采用了一系列的压缩算法和索引结构,可以显著减少存储空间的占用。 2. 快速检索:Langchain向量数据库支持高效的向量相似性搜索。它使用了基于树结构的索引方法,可以快速定位到与查询向量相似的数据项。同时,Langchain向量数据库还支持多种相似性度量方法,如欧氏距离、余弦相似度等。 3. 扩展性:Langchain向量数据库具有良好的扩展性。它支持分布式部署,可以在多台服务器上进行数据存储和计算。同时,Langchain向量数据库还提供了高效的数据迁移和负载均衡机制,可以方便地扩展系统的容量和性能。 4. 应用场景:Langchain向量数据库适用于各种需要进行向量相似性搜索的场景,如像搜索、音频搜索、文本搜索等。它可以广泛应用于电子商务、智能推荐、人脸识别等领域。 测试点: - Langchain向量数据库的性能如何? - Langchain向量数据库支持哪些相似性度量方法? - Langchain向量数据库的存储格式是怎样的? - Langchain向量数据库的分布式部署如何实现? - Langchain向量数据库在哪些领域有应用案例? - Langchain向量数据库的优势和劣势是什么?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值