本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Neptune 串流資料平面 API
串流存取動作:
串流資料結構:
GetPropertygraphStream (動作)
此 API 的 AWS CLI 名稱是:get-propertygraph-stream
。
取得屬性圖的串流。
使用 Neptune 串流功能,您可以產生一系列完整的變更日誌項目,記錄對圖形資料所做的每項變更。GetPropertygraphStream
可讓您為屬性圖收集這些變更日誌項目。
必須在您的 Neptune 資料庫叢集上啟用 Neptune 串流功能。若要啟用串流,請將 neptune_streams 資料庫叢集參數設定為 1
。
在已啟用 IAM 身分驗證的 Neptune 叢集中調用此操作時,發出請求的 IAM 使用者或角色必須附加一個政策,在該叢集中允許 neptune-db:GetStreamRecords IAM 動作。
在已啟用 IAM 身分驗證的 Neptune 叢集中調用此操作時,發出請求的 IAM 使用者或角色必須附加一個政策,啟用下列其中一個 IAM 動作,取決於查詢:
請注意,您可以使用下列 IAM 內容金鑰來限制屬性圖查詢:
請參閱 Neptune IAM 資料存取政策陳述式中可用的條件金鑰。
請求
-
commitNum (在 CLI 中:
--commit-num
) – Long 整數,類型為:long
(帶正負號的 64 位元整數)。要從 change-log 串流讀取之開始記錄的遞交編號。當
iteratorType
是AT_SEQUENCE_NUMBER
或AFTER_SEQUENCE_NUMBER
時,需要此參數,當iteratorType
是TRIM_HORIZON
或LATEST
時,會忽略此參數。 -
encoding (在 CLI 中:
--encoding
) – 一種編碼,類型為:string
(UTF-8 編碼的字串)。如果設定為 TRUE,Neptune 會使用 gzip 編碼壓縮回應。
-
iteratorType (在 CLI 中:
--iterator-type
) – 一種 IteratorType,類型為:string
(UTF-8 編碼的字串)。可為下列其中一個:
-
AT_SEQUENCE_NUMBER
– 指出讀取應該從commitNum
和opNum
參數共同指定的事件序號開始。 -
AFTER_SEQUENCE_NUMBER
– 指出讀取應該在commitNum
和opNum
參數共同指定的事件序號之後立即開始。 -
TRIM_HORIZON
– 指出讀取應該從系統中的最後一個未修整記錄開始,這是變更日誌串流中最舊的未過期 (尚未刪除) 記錄。 -
LATEST
– 指出讀取應該從系統中的最新記錄開始,這是變更日誌串流中最新的未過期 (尚未刪除) 記錄。
-
-
limit (在 CLI 中:
--limit
) – GetPropertygraphStreamInputLimitLong,類型為:long
(帶正負號的 64 位元整數),不小於 1 或大於 100000 ?st?s。指定要傳回的記錄數上限。回應也有無法修改的 10 MB 大小限制,而且會優先於
limit
參數中指定的記錄數量。如果達到 10 MB 限制,回應會包含違反閾值的記錄。limit
的範圍是 1 到 100,000,預設值為 10。 -
opNum (在 CLI 中:
--op-num
) – Long 整數,類型為:long
(帶正負號的 64 位元整數)。所指定遞交內的操作序號,即在變更日誌串流資料中開始讀取之處。預設值為
1
。
回應
-
format – 必要:字串,類型為:
string
(UTF-8 編碼的字串)。要傳回之變更記錄的序列化格式。目前,僅支援的值為
PG_JSON
。 -
lastEventId – 必要:它是金鑰值對的對應陣列,其中:
每個金鑰都是字串,類型為:
string
(UTF-8 編碼的字串)。每個值都是字串,類型為:
string
(UTF-8 編碼的字串)。串流回應中上次變更的序列識別符。
事件 ID 由兩個欄位組成:
commitNum
(識別已變更圖形的交易),以及opNum
(識別該交易內的特定操作)。"eventId": { "commitNum": 12, "opNum": 1 }
-
lastTrxTimestampInMillis – 必要:Long 整數,類型為:
long
(帶有正負號的 64 位元整數)。已請求遞交交易的時間,以毫秒為單位,從 Unix epoch 開始。
-
records – 必要:一個 PropertygraphRecord 物件。
回應中包含之序列化變更日誌串流記錄的陣列。
-
totalRecords – 必要:整數,類型為:
integer
(帶正負號的 32 位元整數)。回應中的記錄總數。
錯誤
串流資料結構:
PropertygraphRecord (結構)
屬性圖記錄的結構。
欄位
-
commitTimestampInMillis - 這是必要:Long 整數,類型為:
long
(帶有正負號的 64 位元整數)。已請求遞交交易的時間,以毫秒為單位,從 Unix epoch 開始。
-
data - 這是必要:PropertygraphData 物件。
序列化的 Gremlin 或 openCypher 變更記錄。
-
eventId - 這是必要:它是金鑰值對的對應陣列,其中:
每個金鑰都是字串,類型為:
string
(UTF-8 編碼的字串)。每個值都是字串,類型為:
string
(UTF-8 編碼的字串)。串流變更記錄中的序列識別符。
-
isLastOp - 這是布林值,類型為:
boolean
(布林值 (true 或 false))。僅當此操作是其交易中的最後一個操作時才存在。如果存在,其會設定為 true。這對於確保整個交易被耗用非常有用。
-
op - 這是必要:字串,類型為:
string
(UTF-8 編碼的字串)。已建立變更的操作。
PropertygraphData (結構)
Gremlin 或 openCypher 變更記錄。
欄位
-
from - 這是字串,類型為:
string
(UTF-8 編碼的字串)。如果這是邊緣 (type=
e
),則為對應from
頂點或來源節點的 ID。 -
id - 這是必要:字串,類型為:
string
(UTF-8 編碼的字串)。Gremlin 或 openCypher 元素的 ID。
-
key - 這是必要:字串,類型為:
string
(UTF-8 編碼的字串)。屬性名稱 對於元素標籤,這是
label
。 -
to - 這是字串,類型為:
string
(UTF-8 編碼的字串)。如果這是邊緣 (type=
e
),則為對應to
頂點或目標節點的 ID。 -
type - 這是必要:字串,類型為:
string
(UTF-8 編碼的字串)。此 Gremlin 或 openCypher 元素的類型。必須是下列其中一個:
-
v1
- Gremlin 的頂點標籤,或 openCypher 的節點標籤。 -
vp
- Gremlin 的頂點屬性,或 openCypher 的節點屬性。 -
e
- Gremlin 的邊緣和邊緣標籤,或 OpenCypher 的關係和關係類型。 -
ep
- Gremlin 的邊緣屬性,或 openCypher 的關係屬性。
-
-
value - 這是必要:文件,類型為:
document
(與通訊協定無關的開放內容,由類似 JSON 的資料模型表示)。這是 JSON 物件,其中包含值本身的 value 欄位,以及該值之 JSON 資料類型的 datatype 欄位。
"value": { "value": "(the new value"), "dataType": "(the JSON datatypenew value") }