图数据库nebula

2024-04-10  本文已影响0人  后知不觉1

nebula

将点与点连接的数据存储,并提供快速查询的能力。
核心概念: 图,vid,索引,点,边
通过vid,查找点与点的联系并将边一起带上返回

1. 图空间

#创建图空间
CREATE SPACE IF NOT EXISTS my_space_2 (partition_num=15, replica_factor=1, vid_type=FIXED_STRING(256));
### 图空间创建说明
# space名称:my_space_2
# partition_num空间分配数,建议为硬盘数量的20倍
# replica_factor 副本数 至少1,
# vid_type 指定vid的类型,FIXED_STRING(256)定长字符串超过会报错无法使用
# comment 描述

#使用图空间,跟mysql的use test一样;
use my_space_2; 

2. VID

vid在同一个图空间中必须唯一,一个图空间只能选择一种vid类型,一种为int65

vid相当于mysql 中的主键,通过vid 查询点是效率最高的一种方式

vid 生成建议: 通过属性组成唯一的字符串来表达vid;

通过vid 查询时不需要走索引,vid查找时直接找的是vid因此比较快。nebula也推荐通过vid 方式查询,不推荐通过索引方式

demo 比如链路血缘中: type:database:table

3. 索引

省略

4. 点tag

#创建点
CREATE tag IF NOT EXISTS table (name string,type int DEFAULT 1) TTL_DURATION=100,TTL_COL="name";
# 点名称:
# TTL_DURATION 过期时间默认s
# TTL_COL 过期列
# vid_type 指定vid的类型,FIXED_STRING(256)
# comment 无描述

#使用图空间,跟mysql的use test一样;
use my_space_2; 

5. 边

#创建点说明
CREATE edge IF NOT EXISTS task (name string,age int DEFAULT 20);
### 图空间创建说明
# 名称:
# partition_num空间分配数,建议为硬盘数量的20倍
# replica_factor 副本数 至少1,
# vid_type 指定vid的类型,FIXED_STRING(256)
# comment 无描述

#使用图空间,跟mysql的use test一样;
use my_space_2; 

字段血缘

#插入边
'INSERT EDGE col_to_col (taskId, taskType, createTime) VALUES "%s"->"%s"@%s :("%s", "%s", %d)';
#插入点, 点就是tag
'insert VERTEX ON column "" SET createTime="", tableType="";'
# 插入多个点
INSERT VERTEX t2 (name, age) VALUES "13":("n3", 12), "14":("n4", 8); 

demo

insert VERTEX column (createTime,tableType) values "2:bdp:dwd_plineage_test:ttttyyyy_11:namexiaoyu":(1710173220,"OTHER");
insert VERTEX column (createTime,tableType) values "2:bdp:dwd_plineage_test:ttttyyyy_11:nametian":(1710173220,"OTHER");
INSERT EDGE col_to_col (taskId, taskType, createTime) VALUES "2:bdp:dwd_plineage_test:ttttyyyy_11:nametian"->"2:bdp:dwd_plineage_test:ttttyyyy_11:namexiaoyu"@203884 :("203884","3", 1710173220)
//往下查询
GET SUBGRAPH WITH PROP 1 STEPS from "2:bdp:dwd_plineage_test:ttttyyyy_11:nametian" OUT col_to_col YIELD VERTICES as nodeInfo,EDGES AS edgeInfo;
上一篇 下一篇

猜你喜欢

热点阅读