Neptune 串流資料平面 API - Amazon Neptune

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

Neptune 串流資料平面 API

串流存取動作:

串流資料結構:

GetPropertygraphStream (動作)

        此 API 的 AWS CLI 名稱是:get-propertygraph-stream

取得屬性圖的串流。

使用 Neptune 串流功能,您可以產生一系列完整的變更日誌項目,記錄對圖形資料所做的每項變更。GetPropertygraphStream 可讓您為屬性圖收集這些變更日誌項目。

必須在您的 Neptune 資料庫叢集上啟用 Neptune 串流功能。若要啟用串流,請將 neptune_streams 資料庫叢集參數設定為 1

請參閱使用 Neptune 串流即時擷取圖形變更

在已啟用 IAM 身分驗證的 Neptune 叢集中調用此操作時,發出請求的 IAM 使用者或角色必須附加一個政策,在該叢集中允許 neptune-db:GetStreamRecords IAM 動作。

在已啟用 IAM 身分驗證的 Neptune 叢集中調用此操作時,發出請求的 IAM 使用者或角色必須附加一個政策,啟用下列其中一個 IAM 動作,取決於查詢:

請注意,您可以使用下列 IAM 內容金鑰來限制屬性圖查詢:

請參閱 Neptune IAM 資料存取政策陳述式中可用的條件金鑰

請求

  • commitNum (在 CLI 中:--commit-num) – Long 整數,類型為:long (帶正負號的 64 位元整數)。

    要從 change-log 串流讀取之開始記錄的遞交編號。當 iteratorTypeAT_SEQUENCE_NUMBERAFTER_SEQUENCE_NUMBER 時,需要此參數,當 iteratorTypeTRIM_HORIZONLATEST 時,會忽略此參數。

  • encoding (在 CLI 中:--encoding) – 一種編碼,類型為:string (UTF-8 編碼的字串)。

    如果設定為 TRUE,Neptune 會使用 gzip 編碼壓縮回應。

  • iteratorType (在 CLI 中:--iterator-type) – 一種 IteratorType,類型為:string (UTF-8 編碼的字串)。

    可為下列其中一個:

    • AT_SEQUENCE_NUMBER – 指出讀取應該從 commitNumopNum 參數共同指定的事件序號開始。

    • AFTER_SEQUENCE_NUMBER – 指出讀取應該在 commitNumopNum 參數共同指定的事件序號之後立即開始。

    • 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") }