Neptune 流数据面板 API - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Neptune 流数据面板 API

流访问操作:

流数据结构:

GetPropertygraphStream(操作)

        此 API 的 Amazon CLI 名称为:get-propertygraph-stream

获取属性图的流。

借助 Neptune Streams 特征,您可以生成完整的更改日志条目序列,以即时记录对图形数据所做的每一个更改。GetPropertygraphStream 使您可以为属性图收集这些更改日志条目。

需要在您的 Neptune 数据库集群上启用 Neptune 流特征。要启用流,请将 neptune_streams 数据库集群参数设置为 1

请参阅使用 Neptune Streams 实时捕获图形更改

在启用了 IAM 身份验证的 Neptune 集群中调用此操作时,发出请求的 IAM 用户或角色必须附加允许在该集群中执行 neptune-db:GetStreamRecords IAM 操作的策略。

在启用了 IAM 身份验证的 Neptune 集群中调用此操作时,发出请求的 IAM 用户或角色必须附加一个策略,该策略允许执行以下 IAM 操作之一,具体取决于查询:

请注意,您可以使用以下 IAM 上下文键限制属性图查询:

请参阅 Neptune IAM 数据访问策略语句中提供的条件键

请求

  • commitNum(在 CLI 中:--commit-num)– 长整型,类型为:long(带符号的 64 位整数)。

    从更改日志流中读取的起始记录的提交编号。当 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。

    指定要返回的最大记录数。响应还受 10 MB 大小的限制,该大小限制不能修改,并且优先级高于 limit 参数中指定的记录数。如果达到了 10 MB 限制,响应中将包含一条超出阈值记录。

    limit 的范围为 1 到 100000,默认值为 10。

  • opNum(在 CLI 中:--op-num)– 长整型,类型为: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(带符号的 64 位整数)。

    请求提交事务的时间(使用 Unix 纪元时间表示,单位为毫秒)。

  • records必填:PropertygraphRecord 对象的数组。

      包含在响应中的序列化更改日志流记录的数组。

  • totalRecords必需:一个整数,类型为:integer(带符号的 32 位整数)。

    响应中的记录总数。

流数据结构:

PropertygraphRecord(结构)

属性图记录的结构。

字段
  • commitTimestampInMillis – 这是必需的:长整型,类型为:long(带符号的 64 位整数)。

    请求提交事务的时间(使用 Unix 纪元时间表示,单位为毫秒)。

  • 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 编码的字符串)。

    如果这是一个边缘(类型 = e),则为相应的 from 顶点或源节点的 ID。

  • id – 这是必需的:一个字符串,类型为:string(UTF-8 编码的字符串)。

    Gremlin 或 openCypher 元素的 ID。

  • key – 这是必需的:一个字符串,类型为:string(UTF-8 编码的字符串)。

    属性名称。对于元素标签,这是 label

  • to – 这是一个字符串,类型为:string(UTF-8 编码的字符串)。

    如果这是一个边缘(类型 = 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 对象,其中包含值本身的值字段和该值的 JSON 数据类型的数据类型字段:

    "value": { "value": "(the new value"), "dataType": "(the JSON datatypenew value") }