openCypher 資料的載入格式 - Amazon Neptune

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

openCypher 資料的載入格式

若要使用 OpenCypher CSV 格式載入 openCypher 資料,您必須在個別的檔案中指定節點和關係。載入器可以在單一載入工作中從其中多個節點檔案和關係檔案載入。

對於每個載入命令,要載入的檔案集必須在 Amazon Simple Storage Service 儲存貯體中具有相同的路徑字首。您可以在 source 參數中指定該字首。實際檔案名稱和副檔名並不重要。

在 Amazon Neptune 中,openCypher CSV 格式遵守 RFC 4180 CSV 規格。如需詳細資訊,請參閱 Internet Engineering Task Force (IETF) 網站上的 CSV 檔案的常見格式與 MIME 類型 (https://tools.ietf.org/html/rfc4180)。

注意

這些檔案必須以 UTF-8 格式編碼。

每個檔案都有一個以逗號分隔的標頭列,其中包含系統欄標頭和屬性欄標頭。

openCypher 資料載入檔案中的系統欄標頭

一個給定系統欄只能在每個檔案中出現一次。所有系統欄標頭標籤都會區分大小寫。

對於 OpenCypher 節點載入檔案和關係載入檔案,必要和允許的系統欄標頭有所不同:

節點檔案中的系統欄標頭

  • :ID   –   (必要) 節點的 ID。

    選用的 ID 空間可以新增至節點 :ID 欄標頭,如下所示::ID(ID Space)。例如,:ID(movies)

    載入連線此檔案中節點的關係時,請在關係檔案 :START_ID 和/或 :END_ID 欄中使用相同的 ID 空間。

    節點 :ID 欄可以選擇性地儲存為屬性,格式為 property name:ID。例如,name:ID

    在目前和先前載入的所有節點檔案中,節點 ID 應該是唯一的。如果使用 ID 空間,則在目前和之前載入中使用相同 ID 空間的所有節點檔案中,節點 ID 應該是唯一的。

  • :LABEL – 節點的標籤。

    允許多個標籤值,以分號 (;) 分隔。

關係檔案中的系統欄標頭

  • :ID – 關係的 ID。當 userProvidedEdgeIds 為 true (預設值) 時,這是必要的,但在 userProvidedEdgeIdsfalse 時無效。

    在目前和先前載入的所有關係檔案中,關係 ID 應該是唯一的。

  • :START_ID – (必要) 此關係起始之節點的節點 ID。

    或者,ID 空間可與格式為 :START_ID(ID Space) 的起始 ID 欄相關聯。指派給起始節點 ID 的 ID 空間應與指派給節點檔案中節點的 ID 空間相符。

  • :END_ID – (必要) 此關係結束之節點的節點 ID。

    或者,ID 空間可與格式為 :END_ID(ID Space) 的結束 ID 欄相關聯。指派給結束節點 ID 的 ID 空間應與指派給節點檔案中節點的 ID 空間相符。

  • :TYPE – 關係的類型。關係只能具有單一類型。

注意

如需大量載入程序如何處理重複節點或關係 ID 的相關資訊,請參閱 載入 openCypher 資料

openCypher 資料載入檔案中的屬性欄標頭

您可以使用下列格式的屬性欄標頭,指定資料欄保留特定屬性的值:

propertyname:type

欄標題中不允許使用空格、逗號、換行符號和換行字元,因此屬性名稱不能包含這些字元。以下是名為 age 且類型為 Int 之屬性的欄標頭範例:

age:Int

age:Int 作為欄標頭的資料欄接著必須在每一列中包含整數或空值。

Neptune openCypher 資料載入檔案中的資料類型

  • BoolBoolean – 布林值欄位。允許的值為 truefalse

    true 以外的任何值都會視為 false

  • Byte – 範圍 -128127 內的整數。

  • Short – 範圍 -32,76832,767 內的整數。

  • Int – 範圍 -2^312^31 - 1 內的整數。

  • Long – 範圍 -2^632^63 - 1 內的整數。

  • Float – 32 位元 IEEE 754 浮點數。同時支援十進位符號和科學符號。Infinity-InfinityNaN 全都得到認可,但 INF 未得到認可。

    位數太多而無法容納的值會四捨五入為最接近的值 (對於位元層級的最後一個剩餘數字,中間值會四捨五入為 0)。

  • Double – 64 位元 IEEE 754 浮點數。同時支援十進位符號和科學符號。Infinity-InfinityNaN 全都得到認可,但 INF 未得到認可。

    位數太多而無法容納的值會四捨五入為最接近的值 (對於位元層級的最後一個剩餘數字,中間值會四捨五入為 0)。

  • String – 引號是選用的。逗號、新行及換行字元若包含在由雙引號 (") 包圍的字串中,將會自動逸出,例如 "Hello, World"

    您可以在引號括住的字串中包含引號,方法是連續使用兩個,例如 "Hello ""World"""

  • DateTime – 下列其中一種 ISO-8601 格式的 Java 日期:

    • yyyy-MM-dd

    • yyyy-MM-ddTHH:mm

    • yyyy-MM-ddTHH:mm:ss

    • yyyy-MM-ddTHH:mm:ssZ

Neptune openCypher 資料載入檔案中的自動轉換資料類型

提供自動轉換資料類型旨在載入 Neptune 目前原本不支援的資料類型。這類欄中的資料會逐字儲存為字串,不對其預期格式進行驗證。允許下列自動轉換資料類型:

  • CharChar 欄位。儲存為字串。

  • DateLocalDateLocalDateTime – 請參閱 Neo4j Temporal Instants,以取得datelocaldatelocaldatetime 類型的說明。這些值會逐字載入為字串,無需驗證。

  • Duration – 請參閱 Neo4j Duration 格式。這些值會逐字載入為字串,無需驗證。

  • Point – 用於儲存空間資料的點欄位。請參閱 Spatial instants。這些值會逐字載入為字串,無需驗證。

openCypher 載入格式的範例

從 TinkerPop 現代圖表取下圖顯示了兩個節點和關係的一個例子:

兩個節點和它們之間關係的圖表。

以下是一般 Neptune openCypher 載入格式的圖形。

節點檔案:

: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