在导入图数据之前,您需要了解GES中支持的图数据格式。
● GES仅支持载入具有标准CSV格式的原始图数据,如果您的原始数据并不符合指定 的格式,则需要将数据整理为GES支持的格式。
● GES支持的图数据格式包含三部分:点文件、边文件以及元数据。
– 点文件用于存放点数据。
– 边文件用于存放边数据。
– 元数据用于描述点文件和边文件中的数据格式。
概念说明
GES基于属性图模型导入图数据,因此,您需要了解属性图(Property graph)的基本 概念。
一个属性图是由点、边、标签(Label)和属性(Property)组成的有向图。
● 点又称作节点(Node),边又称作关系(Relationship),点和关系是最重要的 实体。
● 元数据是用于描述点或边的属性信息,元数据由多个标签组成,每个标签由一个 或多个属性组成。
● 为点或边设置标签,那么拥有相同标签的点属于一个分组,是一个集合。
● 点和边只能设置一个标签。
如下示例中,此图数据由3个点和3条边组成,Vivian、Eric和Lethal Weapon表示点,
(Vivian,Eric)、(Vivian,Lethal Weapon)和(Eric、Lethal Weapon)表示边,
user和movie表示点的类型(标签),rate和friends表示关系类型(标签)。
图4-1 图数据格式的示例
元数据
GES的元数据用于定义点和边的属性信息,为XML格式的文件。
在元数据中包含了标签(Label)和属性(Property)。
● 标签(Label)
标签是属性的集合,描述了一个点或边拥有的所有属性的数据格式。
说明
在不同的标签中,如果定义了相同的属性名称(Property name),则定义的cardinality和 dataType需要跟已定义的一致。
● 属性(Property)
属性指的是单个属性的数据格式,包含3个字段。
– Property name:属性名称。长度限制为1到256位,且不能包含< > &。
说明
同一个标签中不能包含相同的Property name。
– cardinality:数据的复合类型,取值为single、list和set。
▪
single是单值类型,表示该属性的数据是一个单值,如一个数字或一个字 符串。说明
当数据文件中single属性的数值为“value1;value2”这样的值时,将被识别为单 值“value1;value2”。
▪
list和set是多值类型,表示该属性的数据由多个值组成,不同的值用分号 分隔。○ list:数值有放入顺序,可重复,例如,“1;1;1”表示3个“1”。
○ set:数值无放入顺序,不可重复,重复数值会覆盖掉,例如,
“1;1;1”只表示1个“1”。
说明
list和set类型不支持char array数据类型。
– dataType:数据类型,支持的的数据类型如下表所示。
表4-1 支持的数据类型
类型 描述
char 字符。
chararray 定长字符串(需指定最大长度)。
说明
● 只有single类型支持该数据类型。
● 如果是数据类型是字符串类型,建议设置为char array,比设置为 string类型,导入速度快。
float float浮点类型(32位浮点)。
double double浮点类型(64位浮点)。
bool bool类型,取值(0/1)或者(true/false)。
long 长整数类型(取值范围-2^63 to 2^63-1)。
int 整数类型(取值范围-2^31 to 2^31-1)。
date 日期,目前支持格式如下所示:
● YYYY-MM-DD HH:MM:SS
● YYYY-MM-DD
说明MM和DD均须写为两位数,即个位数字前加上“0”,例如
“05/01”。
enum 枚举类型(需指定枚举类型的个数以及每个枚举值),详见图 _元数据示例。
string 不定长字符串类型。
说明由于string为不定长类型,影响数据导入效率,建议使用char array替 代;
char array的长度根据业务需要自行定义,建议不超过32个字符。
元数据的示例如下所示:
图4-2 元数据示例
点文件
点文件罗列了各个点的数据信息。一行为一个点的数据。格式如下所示,id是点数据 的唯一标识。
id,label,property 1,property 2,property 3,…
说明
● 点id的名称中不能包含中划线(-)。
● 点id的类型不需要设置,默认为string。
● 请注意label前后不要任意加空格,逗号表示分隔符,空格会被识别成label的一部分,可能会 出现识别不了或提示label不存在的情况。
示例:
Vivian,user,薇薇安,F,25-34,artist,98133
Eric,user,埃里克,M,18-24,college/grad student,40205
边文件
边文件罗列了各个边的数据信息,一行为一条边的数据。GES中图规格是以边的数量进 行定义的,如一百万边。格式如下所示,id 1、id 2是一条边的两个端点的id。
id 1, id 2, label, property 1, property 2, …
示例:
Eric,Lethal Weapon,rate,4,2000-11-21 15:33:18 Vivian,Eric,friends