全部产品

Gremlin(CSV)文件格式

使用CSV格式加载Apache TinkerPop Gremlin数据,必须将顶点和边分别放到单独的文件。加载程序可以在单个加载任务中加载多个顶点文件和多个边文件。

每一个加载任务的加载文件集必须位于OSS的bucket同一文件夹中,不使用文件名和文件扩展名来区分顶点文件和边文件。

Gremlin CSV格式遵循RFC 4180 CSV规范。有关更多信息,请参阅IETF(Internet Engineering Task Force) 网站上的CSV文件的一般格式和MIME类型

注意

所有文件必须采用UTF-8格式编码。

每个文件都包含一个逗号分隔的标题行,此标题行由系统列标题和属性列标题组成。

注意

标题行是数据文件的第一行,由\n\r\n结束,行内部不支持使用双引号、行换符等特殊字符,除分隔符逗号(,)外的其余字符均被解析为标题内容。

系统列标题

顶点文件和边文件的系统列标题不同,每个系统列在标题中只能出现一次,所有标签都是字符串类型,并且区分大小写。

顶点标题

  • ~id - 必需,顶点的ID。

  • ~label,- 顶点的标签,只支持单个标签。

边标题

  • ~id - 必需,边的ID。

  • ~from - 必需,源顶点的顶点ID。

  • ~to - 必需,目标顶点的顶点ID。

  • ~label,- 边的标签,只支持单个标签。

属性列标题

可通过以下语法指定属性列,类型名称不区分大小写。

propertyname:type
xx
注意

  • 列标题中不允许使用空格,因此,属性名称也不能包含空格。

  • 属性不支持List和Set数据类型,只能有一个值。

以下示例显示了名为age、类型为Int的属性的列标题。

age:Int

文件中的每行都需要在该位置具有整数或保留为空。

数据类型

下面列出允许的属性值类型及描述。

Bool或Boolean

指示Boolean字段,允许的值:false, true, FALSE, TRUE。

整数类型

超出所定义范围的值将导致错误。

类型

Range

char

-128 ~ 127

short

-32768 ~ 32767

int

-2^31 ~ 2^31 -1

long

-2^63 ~ 2^63 -1

小数类型

支持十进制记数法或科学记数法。不支持(+/-)INFINITY或NaN。

类型

Range

float

32位IEEE 754浮点

double

64位IEEE 754浮点

字符串

双引号是可选的,字符串中如果包含逗号(,)、换行(\r\n\n),双引号(”)等特殊字符,需要使用双引号(”)括起来。示例:”Hello,World”

如果用双引号括起来的字符串中包含有双引号,可根据CSV规则使用两个双引号转义。示例:”Hello “”World”””

字符串中不包含特殊字符,可以不使用双引号括起来。

注意

支持长度为零的空字符串,表示为:””,不使用双引号的空白域表示不存在,为nullptr

行格式

分隔符

行中字段是用逗号分隔的,行间是用换行符(\n)或回车换行符(\r\n)分隔的。

空白字段

非必需列(如用户定义的属性) 允许使用空白字段。空白字段仍需要逗号分隔符。

顶点ID

每个顶点文件中所有顶点的~id 值都必须是唯一的。~id 值相同的多个顶点行适用于图形中的单个顶点。

边ID

每个边文件中所有边的~id 值都必须是唯一的。~id 值相同的多个边行适用于图形中的单个边。

标签

标签是字符串类型,区分大小写。

字符串值

引号是可选的,当包含逗号等特殊字符时需要使用双引号(”)括起来。

示例

以下使用TinkerPop modern图形为示例,表示为图的CSV数据文件。

tinkerpop-modern

以下是Gremlin CSV加载格式的数据文件。

顶点文件:

~id,~label,name:string,lang:string,age:int1,person,marko,,29,person,vadas,,27,software,lop,java,4,person,josh,,32,software,ripple,java,6,person,peter,,35

顶点文件的表格视图:

~id

~label

name:string

lang:string

age:int

1

person

marko

29

2

person

vadas

27

3

software

lop

java

4

person

josh

32

5

software

ripple

java

6

person

peter

35

边文件:

~id,~from,~to,~label,weight:double7,1,2,knows,0.58,1,4,knows,1.09,1,3,created,0.410,4,5,created,1.011,4,3,created,0.412,6,3,created,0.2

边文件的表格视图:

~id

~from

~to

~label

weight:double

7

1

2

knows

0.5

8

1

4

knows

1.0

9

1

3

created

0.4

10

4

5

created

1.0

11

4

3

created

0.4

12

6

3

created

0.2