OpenPher 数据的加载格式 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

OpenPher 数据的加载格式

要使用 Opencryper CSV 格式加载 Opencryper 数据,必须在单独的文件中指定节点和关系。加载程序可以在单个加载任务中从多个这些节点文件和关系文件加载。

对于每个加载命令,要加载的文件集必须在 Amazon Simple Storage 存储桶中具有相同的路径前缀。您可以在 source 参数中指定该前缀。实际的文件名和扩展名不重要。

在 Amazon Neptune 中,OpenPher CSV 格式符合 RFC 4180 CSV 规范。有关更多信息,请参阅 。CSV 文件的通用格式和 MIME 类型(https://tools.ietf.org/html/rfc4180) 在因特网工程任务组 (IETF) 网站上。

注意

这些文件必须采用 UTF-8 格式编码。

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

OpenPher 数据加载文件中的系统列标题

给定的系统列只能在每个文件中显示一次。所有系统列标题都区分大小写。

OpenPher 节点加载文件和关系加载文件所需和允许的系统列标题不同:

节点文件中的系统列标题

  • :ID—(必填)节点的 ID。

    可向节点添加可选 ID 空间:ID像这样的列标题::ID(ID Space). 例如,:ID(movies).

    加载连接此文件中节点的关系时,请在关系文件中使用相同的 ID 空格:START_ID和/或:END_IDcolumn.

    该节点:ID列可以选择存储为表单中的属性,property name:ID. 示例是 name:ID

    节点 ID 在当前和之前加载中的所有节点文件中都应该是唯一的。如果使用 ID 空间,则节点 ID 在当前和之前的加载中使用相同 ID 空间的所有节点文件中都应是唯一的。

  • :LABEL— 节点的标签。

    允许多个标签值,并以分号分隔(;)。

关系文件中的系统列标题

  • :ID— 关系的身份证。这是必需的userProvidedEdgeIds为 true(默认值),但在时间无效userProvidedEdgeIdsfalse.

    当前和之前加载的所有关系文件中的关系 ID 应该是唯一的。

  • :START_ID— (必需) 此关系开始的节点的节点 ID。

    或者,ID 空间可以与表单中的起始 ID 列关联:START_ID(ID Space). 分配给起始节点 ID 的 ID 空间应与在节点文件中分配给该节点的 ID 空间匹配。

  • :END_ID— (必需) 此关系结束的节点的节点 ID。

    或者,ID 空间可以与表单中的结束 ID 列关联:END_ID(ID Space). 分配给终端节点 ID 的 ID 空间应与节点文件中分配给该节点的 ID 空间匹配。

  • :TYPE— 关系的类型。关系只能有一个类型。

注意

请参阅加载 OpenPher 数据了解有关批量加载过程如何处理重复的节点或关系 ID 的信息。

OpenPher 数据加载文件中的属性列标题

您可以使用以下形式的属性列标题来指定列保存特定属性的值:

propertyname:type

列标题中不允许使用空格,冒号(:) 不允许在属性名称中使用。以下是名为的属性的列标题示例。age的类型Int

age:Int

使用的专栏age:Int因为列标题必须在每行中包含一个整数或空值。

Neptune OpenPher 数据加载文件中的数据类型

  • Bool要么Boolean— 布尔字段。允许的值包括 truefalse

    除外的任何值true被视为false.

  • Byte— 范围内的整数-128通过127.

  • Short— 范围内的整数-32,768通过32,767.

  • Int— 范围内的整数-2^31通过2^31 - 1.

  • Long— 范围内的整数-2^63通过2^63 - 1.

  • Float— 32 位 IEEE 754 浮点数。两者都支持十进制表示法和科学记数法。Infinity-Infinity, 和NaN都被认可,但INF不是。

    数位过多的值将四舍五入到最接近的值(对于位级别的最后剩余数位,中间值将四舍五入到 0)。

  • Double— 64 位 IEEE 754 浮点数。两者都支持十进制表示法和科学记数法。Infinity-Infinity, 和NaN都被认可,但INF不是。

    数位过多的值将四舍五入到最接近的值(对于位级别的最后剩余数位,中间值将四舍五入到 0)。

  • String— 引号是可选的。如果逗号、换行符和回车符包含在双引号括起来的字符串中包含逗号、换行符和回车符,则会自动对这些字符进行转义("LIKE)"Hello, World".

    可通过在一行中使用两个引号来在用引号引起来的字符串中包含引号,例如"Hello ""World""".

    允许使用字符串数组,用分号分隔 (;)。要在字符串数组中包含文字分号,请用如下所示的反斜杠将其转义:\;. 如果你希望字符串数组中的每个字符串都用引号括起来,而是用引号括起整个数组,如下所示:"String one; String 2; String 3".

  • DateTime— 以下 ISO-8601 格式之一的 Java 日期:

    • yyyy-MM-dd

    • yyyy-MM-ddTHH:mm

    • yyyy-MM-ddTHH:mm:ss

    • yyyy-MM-ddTHH:mm:ssZ

Neptune OpenPher 数据加载文件中的自动投射数据类型

提供自动投射数据类型来加载 Neptune 本地不支持的数据类型。这些列中的数据以字符串形式存储,逐字存储,不会对其预期格式进行验证。允许使用以下自动转换数据类型:

  • Char— AChar字段中返回的子位置类型。存储为字符串。

  • DateLocalDate, 和LocalDateTime, — 请参阅NEO4j 时间即时有关的说明datelocaldate, 和localdatetime类型。这些值被逐字加载为字符串,而无需验证。

  • Duration— 请参阅NEO4j 持续时间格式. 这些值被逐字加载为字符串,而无需验证。

  • Point— 用于存储空间数据的点字段。请参阅NEO4J 点格式. 这些值被逐字加载为字符串,而无需验证。

OpenPher 加载格式的示例

下图取自 TinkerPop 现代图表显示了两个节点和一个关系的示例:

两个节点的图表以及它们之间的关系。

以下是常规 Neptune OpenPher 加载格式的图形。

节点文件:

:ID, name:String, age:Int, lang:String, :LABEL v1, "marko", 29, , person v2, "lop", , "java", software

关系文件:

:ID, :START_ID, :END_ID, :TYPE, weight:Double e1, v1, v2, created, 0.4

或者,您可以使用 ID 空格和 ID 作为属性,如下所示:

第一个节点文件:

name:ID(person), age:Int, lang:String, :LABEL "marko", 29, , person

第二个节点文件:

name:ID(software), age:Int, lang:String, :LABEL "lop", , "java", software

关系文件:

:ID, :START_ID, :END_ID, :TYPE, weight:Double e1, "marko", "lop", created, 0.4