本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Neptune 串流 REST API 請求的回應具有下列欄位:
-
lastEventId
– 串流回應中上次變更的序列識別符。事件 ID 由兩個欄位組成:commitNum
識別已變更圖形的交易,以及opNum
識別該交易內的特定操作。如以下範例所示。"eventId": { "commitNum": 12, "opNum": 1 }
lastTrxTimestamp
– 已請求遞交交易的時間,以毫秒為單位,從 Unix epoch 開始。format
– 要傳回之變更記錄的序列化格式。Gremlin 或 openCypher 變更記錄的可能值是PG_JSON
,而 SPARQL 變更記錄的可能值是NQUADS
。-
records
– 回應中包含之序列化變更日誌串流記錄的陣列。records
陣列中的每筆記錄都包含下列欄位:commitTimestamp
– 已請求遞交交易的時間,以毫秒為單位,從 Unix epoch 開始。eventId
– 串流變更記錄的序列識別符。data
– 序列化的 Gremlin、SPARQL 或 openCypher 變更記錄。下節 (Neptune 串流中的序列化格式) 會詳細描述每筆記錄的序列化格式。op
– 已建立變更的操作。isLastOp
– 僅當此操作是其交易中的最後一個操作時才存在。存在時,其會設定為true
。有助於確保取用整個交易。
totalRecords
– 回應中的記錄總數。
例如,下列回應會針對包含多項操作的交易傳回 Gremlin 變更資料:
{
"lastEventId": {
"commitNum": 12,
"opNum": 1
},
"lastTrxTimestamp": 1560011610678,
"format": "PG_JSON",
"records": [
{
"commitTimestamp": 1560011610678,
"eventId": {
"commitNum": 1,
"opNum": 1
},
"data": {
"id": "d2b59bf8-0d0f-218b-f68b-2aa7b0b1904a",
"type": "vl",
"key": "label",
"value": {
"value": "vertex",
"dataType": "String"
}
},
"op": "ADD"
}
],
"totalRecords": 1
}
下列回應會傳回交易中最後一個操作的 SPARQL 變更資料 (交易編號 97 中 EventId(97, 1)
所識別的操作)。
{
"lastEventId": {
"commitNum": 97,
"opNum": 1
},
"lastTrxTimestamp": 1561489355102,
"format": "NQUADS",
"records": [
{
"commitTimestamp": 1561489355102,
"eventId": {
"commitNum": 97,
"opNum": 1
},
"data": {
"stmt": "<https://test.com/s> <https://test.com/p> <https://test.com/o> .\n"
},
"op": "ADD",
"isLastOp": true
}
],
"totalRecords": 1
}