导出 params 顶级 JSON 对象中的参数字段 - Amazon Neptune

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

导出 params 顶级 JSON 对象中的参数字段

Neptune 导出 params JSON 对象允许您控制导出,包括导出数据的类型和格式。

导出参数 params 对象中可能的字段列表

下面列出了所有可能出现在 params 对象中的顶级字段。任何一个对象中都只显示这些字段的一个子集。

所有导出类型通用的字段列表

属性图导出的字段列表

RDF 导出的字段列表

所有导出类型通用的字段

params 中的 cloneCluster 字段

(可选)。默认值:false

如果 cloneCluster 参数设置为 true,则导出过程将使用数据库集群的快速克隆:

"cloneCluster" : true

默认情况下,导出过程会从您使用 endpointendpointsclusterId 参数指定的数据库集群中导出数据。但是,如果在导出过程中正在使用数据库集群,并且数据正在更改,则导出过程无法保证正在导出的数据的一致性。

为确保导出的数据一致,请改为使用 cloneCluster 参数从数据库集群的静态克隆中导出。

克隆的数据库集群与源数据库集群在同一 VPC 中创建,并继承源数据库集群的安全组、子网组和 IAM 数据库身份验证设置。导出完成后,Neptune 会删除克隆的数据库集群。

默认情况下,克隆的数据库集群由与源数据库集群中的主实例具有相同实例类型的单个实例组成。您可以通过使用 cloneClusterInstanceType 指定不同的实例类型,更改用于克隆的数据库集群的实例类型。

注意

如果您不使用 cloneCluster 选项,而是直接从主数据库集群导出,则可能需要增加从中导出数据的实例的超时时间。对于大型数据集,应将超时设置为几个小时。

params 中的 cloneClusterInstanceType 字段

(可选)

如果 cloneCluster 参数存在且设置为 true,则可以使用 cloneClusterInstanceType 参数指定用于克隆的数据库集群的实例类型:

默认情况下,克隆的数据库集群由与源数据库集群中的主实例具有相同实例类型的单个实例组成。

"cloneClusterInstanceType" : "(for example, r5.12xlarge)"

params 中的 cloneClusterReplicaCount 字段

(可选)

如果 cloneCluster 参数存在且设置为 true,则可以使用 cloneClusterReplicaCount 参数来指定在克隆的数据库集群中创建的只读副本实例的数量:

"cloneClusterReplicaCount" : (for example, 3)

默认情况下,克隆的数据库集群由单个主实例组成。cloneClusterReplicaCount 参数允许您指定应额外创建多少只读副本实例。

params 中的 clusterId 字段

(可选)

clusterId 参数指定要使用的数据库集群的 ID:

"clusterId" : "(the ID of your DB cluster)"

如果您使用 clusterId 参数,则导出过程将使用该数据库集群中的所有可用实例来提取数据。

注意

endpointendpointsclusterId 参数是互斥的。使用且仅使用其中一个。

params 中的 endpoint 字段

(可选)

使用 endpoint 指定数据库集群中 Neptune 实例的端点,导出过程可以查询该端点以提取数据(请参阅终端节点连接)。这只是 DNS 名称,不包括协议或端口:

"endpoint" : "(a DNS endpoint of your DB cluster)"

使用集群或实例端点,但不要使用主读取器端点。

注意

endpointendpointsclusterId 参数是互斥的。使用且仅使用其中一个。

params 中的 endpoints 字段

(可选)

使用 endpoints 指定数据库集群中端点的 JSON 数组,导出过程可以查询这些端点以提取数据(请参阅终端节点连接)。这些只是 DNS 名称,不包括协议或端口:

"endpoints": [ "(one endpoint in your DB cluster)", "(another endpoint in your DB cluster)", "(a third endpoint in your DB cluster)" ]

如果您的集群中有多个实例(一个主实例和一个或多个只读副本),则可以使用 endpoints 参数在这些端点列表间分配查询,从而提高导出性能。

注意

endpointendpointsclusterId 参数是互斥的。使用且仅使用其中一个。

params 中的 profile 字段

(需要此字段以便为 Neptune ML 导出训练数据,除非 additionalParams 字段中存在 neptune_ml 字段)

profile 参数为特定工作负载提供一组预配置的参数。目前,导出过程仅支持 neptune_ml 配置文件

如果要为 Neptune ML 导出训练数据,请向 params 对象添加以下参数:

"profile" : "neptune_ml"

params 中的 useIamAuth 字段

(可选)。默认值:false

如果您要从中导出数据的数据库启用了 IAM 身份验证,则必须包括 useIamAuth 参数(设置为 true):

"useIamAuth" : true

params 中的 includeLastEventId 字段

如果将 includeLastEventId 设置为 true,并且要从中导出数据的数据库启用了 Neptune Streams,则导出过程会将 lastEventId.json 文件写入您指定的导出位置。此文件包含流中最后一个事件的 commitNumopNum

"includeLastEventId" : true

导出过程创建的克隆数据库会继承其父数据库的流设置。如果父级启用了流,则克隆同样会启用流。克隆上流的内容将反映创建克隆的时间点时父流的内容(包括相同的事件 ID)。

用于属性图导出的字段

params 中的 concurrency 字段

(可选)。默认值:4

concurrency 参数指定导出过程应使用的并行查询数量:

"concurrency" : (for example, 24)

一个好的指导原则是,在要从中导出数据的所有实例上,将并发级别设置为 vCPU 数量的两倍。例如,一个 r5.xlarge 实例有 4 个 vCPU。如果您要从包含 3 个 r5.xlarge 实例的集群中导出,则可以将并发级别设置为 24 (= 3 x 2 x 4)。

如果您使用的是 Neptune-Export 服务,则并发级别受到 jobSize 设置的限制。例如,小型任务支持的并发级别为 8。如果您尝试使用 concurrency 参数为小型任务指定并发级别 24,则有效级别将保持为 8。

如果您从克隆的集群中导出,则导出过程会根据克隆实例的大小和任务大小计算适当的并发级别。

params 中的 edgeLabels 字段

(可选)

使用 edgeLabels 仅导出那些带有您指定的标签的边缘:

"edgeLabels" : ["(a label)", "(another label"]

JSON 数组中的每个标签都必须是单个简单的标签。

scope 参数优先于 edgeLabels 参数,因此,如果 scope 值不包括边缘,则 edgeLabels 参数无效。

params 中的 filter 字段

(可选)

使用 filter 指定仅应导出带有特定标签的节点和/或边缘,以及筛选为每个节点或边缘导出的属性。

filter 对象的一般结构,无论是内联对象还是筛选条件配置文件中的对象,如下所示:

"filter" : { "nodes": [ (array of node label and properties objects) ], "edges": [ (array of edge definition an properties objects) ] }
  • nodes – 包含节点和节点属性的 JSON 数组,格式如下:

    "nodes : [ { "label": "(node label)", "properties": [ "(a property name)", "(another property name)", ( ... ) ] } ]
    • label – 节点的一个或多个属性图标签。

      取一个值,或者如果节点有多个标签,则取一个值数组。

    • properties – 包含要导出的节点属性的名称的数组。

  • edges – 包含边缘定义的 JSON 数组,格式如下:

    "edges" : [ { "label": "(edge label)", "properties": [ "(a property name)", "(another property name)", ( ... ) ] } ]
    • label – 边缘的属性图标签。取单个值。

    • properties – 包含要导出的边缘属性的名称的数组。

params 中的 filterConfigFile 字段

(可选)

使用 filterConfigFile 指定包含筛选条件配置的 JSON 文件,其格式与 filter 参数采用的格式相同:

"filterConfigFile" : "s3://(your Amazon S3 bucket)/neptune-export/(the name of the JSON file)"

有关 filterConfigFile 文件的格式,请参阅filter

params 中用于属性图数据的 format 字段

(可选)默认值csv(逗号分隔值)

format 参数指定导出的属性图数据的输出格式:

"format" : (one of: csv, csvNoHeaders, json, neptuneStreamsJson)

params 中的 gremlinFilter 字段

(可选)

gremlinFilter 参数允许您提供用于筛选节点和边缘的 Gremlin 代码段,例如 has() 步骤:

"gremlinFilter" : (a Gremlin snippet)

字段名称和字符串值应用转义的双引号括起来。对于日期和时间,您可以使用 datetime 方法。

以下示例仅导出具有 date-created 属性且属性值晚于 2021-10-10 的节点和边缘:

"gremlinFilter" : "has(\"created\", gt(datetime(\"2021-10-10\")))"

params 中的 gremlinNodeFilter 字段

(可选)

gremlinNodeFilter 参数允许您提供用于筛选节点的 Gremlin 代码段,例如 has() 步骤:

"gremlinNodeFilter" : (a Gremlin snippet)

字段名称和字符串值应用转义的双引号括起来。对于日期和时间,您可以使用 datetime 方法。

以下示例仅导出具有 deleted 布尔属性且属性值为 true 的节点:

"gremlinNodeFilter" : "has(\"deleted\", true)"

params 中的 gremlinEdgeFilter 字段

(可选)

gremlinEdgeFilter 参数允许您提供用于筛选边缘的 Gremlin 代码段,例如 has() 步骤:

"gremlinEdgeFilter" : (a Gremlin snippet)

字段名称和字符串值应用转义的双引号括起来。对于日期和时间,您可以使用 datetime 方法。

以下示例仅导出具有 strength 数值属性且属性值为 5 的边缘:

"gremlinEdgeFilter" : "has(\"strength\", 5)"

params 中的 nodeLabels 字段

(可选)

使用 nodeLabels 仅导出那些带有您指定的标签的节点:

"nodeLabels" : ["(a label)", "(another label"]

JSON 数组中的每个标签都必须是单个简单的标签。

scope 参数优先于 nodeLabels 参数,因此,如果 scope 值不包括节点,则 nodeLabels 参数无效。

params 中的 scope 字段

(可选)。默认值:all

scope 参数指定是仅导出节点,仅导出边缘,还是同时导出节点和边缘:

"scope" : (one of: nodes, edges, or all)
  • nodes – 仅导出节点及其属性。

  • edges – 仅导出边缘及其属性。

  • all – 同时导出节点和边缘及其属性(默认)。

RDF 导出的字段

params 中用于 RDF 数据的 format 字段

(可选)默认值turtle

format 参数指定导出的 RDF 数据的输出格式:

"format" : (one of: turtle, nquads, ntriples, neptuneStreamsJson)
  • turtle – Turtle 格式的输出。

  • nquads – N-Quads 格式的数据,没有列标题。

  • ntriples – N-Triples 格式的数据。

  • neptuneStreamsJson – 使用 SPARQL NQUADS 更改序列化格式的 JSON 格式的数据。

params 中的 rdfExportScope 字段

(可选)。默认值:graph

rdfExportScope 参数指定 RDF 导出的范围:

"rdfExportScope" : (one of: graph, edges, or query)
  • graph – 导出所有 RDF 数据。

  • edges – 仅导出表示边缘的三元组。

  • query – 导出由使用 sparql 字段提供的 SPARQL 查询取回的数据。

params 中的 sparql 字段

(可选)

sparql 参数允许您指定 SPARQL 查询来取回要导出的数据:

"sparql" : (a SPARQL query)

如果您使用 sparql 字段提供查询,还必须将 rdfExportScope 字段设置为 query

params 中的 namedGraph 字段

(可选)

namedGraph参数允许您指定 IRI 以将导出限制为单个命名图:

"namedGraph" : (Named graph IRI)

namedGraph参数只能在rdfExportScope字段设置为时使用graph