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

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

使用 Neptune-Export 服务导出 Neptune 数据

您可以使用以下步骤,通过 Neptune-Export 服务将数据从 Neptune 数据库集群导出到 Amazon S3:

安装 Neptune-Export 服务

使用 Amazon CloudFormation 模板创建堆栈:

安装 Neptune-Export 服务
  1. 通过选择下表中的启动堆栈按钮之一,在 Amazon CloudFormation 控制台中启动 Amazon CloudFormation 堆栈:

    区域 查看 在 Designer 中查看 发布
    美国东部(弗吉尼亚州北部) 视图 在 Designer 中查看
    美国东部(俄亥俄州) 视图 在 Designer 中查看
    美国西部(北加利福尼亚) 视图 在 Designer 中查看
    美国西部(俄勒冈州) 视图 在 Designer 中查看
    加拿大(中部) 视图 在 Designer 中查看
    南美洲(圣保罗) 视图 在 Designer 中查看
    欧洲地区(斯德哥尔摩) 视图 在 Designer 中查看
    欧洲地区(爱尔兰) 视图 在 Designer 中查看
    欧洲地区(伦敦) 视图 在 Designer 中查看
    欧洲地区(巴黎) 视图 在 Designer 中查看
    欧洲地区(法兰克福) 视图 在 Designer 中查看
    中东(巴林) 视图 在 Designer 中查看
    中东(阿联酋) 视图 在 Designer 中查看
    以色列(特拉维夫) 视图 在 Designer 中查看
    非洲(开普敦) 视图 在 Designer 中查看
    亚太地区(香港) 视图 在 Designer 中查看
    亚太地区(东京) 视图 在 Designer 中查看
    亚太地区(首尔) 视图 在 Designer 中查看
    亚太地区(新加坡) 视图 在 Designer 中查看
    亚太地区(悉尼) 视图 在 Designer 中查看
    亚太地区(孟买) 视图 在 Designer 中查看
    中国(北京) 视图 在 Designer 中查看
    中国(宁夏) 视图 在 Designer 中查看
    Amazon GovCloud(美国西部) 视图 在 Designer 中查看
    Amazon GovCloud(美国东部) 视图 在 Designer 中查看
  2. Select Template 页面上,选择 Next

  3. 在模板的指定详细信息页面上,设置以下参数:

    • VPC – 设置 Neptune-Export 服务的最简单方法是将其安装在与 Neptune 数据库相同的 Amazon VPC 中。如果您想将其安装在单独的 VPC 中,则可以使用 VPC 对等连接在 Neptune 数据库集群的 VPC 和 Neptune-Export 服务 VPC 之间建立连接。

    • Subnet1 – Neptune-Export 服务必须安装在您 VPC 的子网中,该子网允许从该子网到互联网的出站 IPv4 HTTPS 流量。这样,Neptune-Export 服务就可以调用 Amazon Batch API 来创建和运行导出任务。

      如果您使用 Neptune 文档中创建数据库集群页面上的 CloudFormation 模板创建了 Neptune 集群,则可以使用该堆栈中的 PrivateSubnet1PrivateSubnet2 输出来填充此参数和下一个参数。

    • Subnet2 – VPC 中的第二个子网,允许从该子网到互联网的出站 IPv4 HTTPS 流量。

    • EnableIAM – 将其设置为 true 以使用 Amazon Identity and Access Management (IAM) 保护 Neptune-Endpoint API。我们建议您这样做。

      如果您启用 IAM 身份验证,则必须对针对端点的所有 HTTPS 请求进行 Sigv4 签名。您可以使用诸如 awscurl 之类的工具来代表您签署请求。

    • VPCOnly – 将它设置为 true 将使导出端点成为“仅 VPC”,因此,您只能从安装了 Neptune-Export 服务的 VPC 内对其进行访问。这将 Neptune-Export API 限制为只能在该 VPC 内使用。

      建议您将 VPCOnly 设置为 true

    • NumOfFilesULimit – 在 ulimits 容器属性中为 nofile 指定一个介于 10000 到 1 百万之间的值。默认值为 10000,除非您的图形包含大量唯一标签,否则我们建议保留默认值。

    • PrivateDnsEnabled (布尔值)– 指示是否将私有托管区与指定的 VPC 关联。默认值为 true

      在启用此标志的情况下创建 VPC 端点时,所有 API Gateway 流量都将通过 VPC 端点路由,并且公有 API Gateway 端点调用将被禁用。如果将 PrivateDnsEnabled 设置为 false,则启用公有 API Gateway 端点,但无法通过私有 DNS 端点连接 Neptune 导出服务。然后,您可以使用 VPC 端点的公有 DNS 端点来调用导出服务,详见此处

  4. 选择下一步

  5. 选项页面上,选择下一步

  6. 审核页面上,选中第一个复选框以确认 Amazon CloudFormation 将创建 IAM 资源。选中第二个复选框以确认新堆栈的 CAPABILITY_AUTO_EXPAND

    注意

    CAPABILITY_AUTO_EXPAND 明确确认在创建堆栈时将扩展宏,而无需事先审核。用户通常通过处理的模板创建更改集,以便在实际创建堆栈之前对宏所做的更改进行审核。有关更多信息,请参阅 Amazon CloudFormation CreateStack API。

    然后选择创建

启用从 Neptune-Export 访问 Neptune

Neptune-Export 安装完成后,更新您的 Neptune VPC 安全组以允许从 Neptune-Export 进行访问。创建 Neptune-Export Amazon CloudFormation 堆栈后,输出选项卡将包含一个 NeptuneExportSecurityGroup ID。更新 Neptune VPC 安全组以允许从该 Neptune 导出任务进行访问。

启用从基于 VPC 的 EC2 实例访问 Neptune-Export 端点

如果您将 Neptune-Export 端点设置为仅 VPC,则只能从安装了 Neptune-Export 服务的 VPC 内对其进行访问。要允许从 VPC 中的 Amazon EC2 实例进行连接(您可以从该实例进行 Neptune-Export API 调用),请将 Amazon CloudFormation 堆栈创建的 NeptuneExportSecurityGroup 附加到该 Amazon EC2 示例。

使用 Neptune-Export API 运行 Neptune-Export 任务

Amazon CloudFormation 堆栈的输出选项卡还包括 NeptuneExportApiUri。每当您向 Neptune-Export 端点发送请求时,请使用此 URI。

运行导出任务
  • 请确保运行导出的用户或角色已被授予 execute-api:Invoke 权限。

  • 如果您在安装 Neptune-Export 时在 Amazon CloudFormation 堆栈中将 EnableIAM 参数设置为 true,则需要对针对 Neptune-Export API 的所有请求进行 Sigv4 签名。我们建议使用 awscurl 向 API 发出请求。此处的所有示例都假设已启用 IAM 身份验证。

  • 如果您在安装 Neptune-Export 时在 Amazon CloudFormation 堆栈中将 VPCOnly 参数设置为 true,则必须从 VPC 内调用 Neptune-Export API,通常是从位于 VPC 中的 Amazon EC2 实例调用。

要开始导出数据,请使用 commandoutputS3Path 请求参数以及 endpoint 导出参数向 NeptuneExportApiUri 端点发送请求。

以下是从 Neptune 导出属性图数据并将其发布到 Amazon S3 的请求示例:

curl \ (your NeptuneExportApiUri) \ -X POST \ -H 'Content-Type: application/json' \ -d '{ "command": "export-pg", "outputS3Path": "s3://(your Amazon S3 bucket)/neptune-export", "params": { "endpoint": "(your Neptune endpoint DNS name)" } }'

同样,以下是将 RDF 数据从 Neptune 导出到 Amazon S3 的请求示例:

curl \ (your NeptuneExportApiUri) \ -X POST \ -H 'Content-Type: application/json' \ -d '{ "command": "export-rdf", "outputS3Path": "s3://(your Amazon S3 bucket)/neptune-export", "params": { "endpoint": "(your Neptune endpoint DNS name)" } }'

如果您省略 command 请求参数,则默认情况下,Neptune-Export 会尝试从 Neptune 导出属性图数据。

如果前面的命令成功运行,则输出将如下所示:

{ "jobName": "neptune-export-abc12345-1589808577790", "jobId": "c86258f7-a9c9-4f8c-8f4c-bbfe76d51c8f" }

监控您刚刚启动的导出任务

要监控正在运行的任务,请将其 jobID 附加到您的 NeptuneExportApiUri 之后,如下所示:

curl \ (your NeptuneExportApiUri)(the job ID)

如果服务尚未启动导出任务,则响应将如下所示:

{ "jobId": "c86258f7-a9c9-4f8c-8f4c-bbfe76d51c8f", "status": "pending" }

当您在导出任务开始后重复该命令时,响应将如下所示:

{ "jobId": "c86258f7-a9c9-4f8c-8f4c-bbfe76d51c8f", "status": "running", "logs": "https://us-east-1.console.aws.amazon.com/cloudwatch/home?..." }

如果您使用状态调用提供的 URI 在 CloudWatch Logs 中打开日志,则可以详细监控导出的进度:

CloudWatch Logs 显示内容的屏幕截图。

取消正在运行的导出任务

使用 Amazon Web Services Management Console 取消正在运行的导出任务
  1. 打开Amazon Batch控制台,地址:https://console.aws.amazon.com/batch/

  2. 选择 Jobs (作业)

  3. 根据要取消的正在运行的任务的 jobID,找到该任务。

  4. 选择取消任务

使用 Neptune 导出 API 取消正在运行的导出任务

向附有 jobIDNeptuneExportApiUri 发送 HTTP DELETE 请求,如下所示:

curl -X DELETE \ (your NeptuneExportApiUri) (the job ID)