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

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

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

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

安装海王星出口服务

使用Amazon CloudFormation用于创建堆栈的模板:

安装海王星出口服务

  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 中查看
    Amazon GovCloud (美国西部) 查看 在 Designer 中查看
    Amazon GovCloud (美国东部) 查看 在 Designer 中查看
  2. Select Template 页面上,选择 Next

  3. 在存储库的指定细节页面、模板中,设置以下参数:

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

    • Subnet1— 必须将 Neptune-Export 服务安装在 VPC 中的子网中,以允许出站 IPv4 HTTPS 流量从子网流向 Internet。这是为了使海王星出口服务可以调用AmazonBatch API以创建和运行导出作业。

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

    • Subnet2— VPC 中允许出站 IPv4 HTTPS 流量从子网流向 Internet 的第二个子网。

    • EnableIAM— 将其设置为true使用保护海王星端点 APIAmazon Identity and Access Management(IAM)。我们建议您这样做。

      如果您确实启用了 IAM 身份验证,则必须Sigv4对终端节点的所有 HTTPS 请求进行签名。您可以使用以下工具:awscurl以您的名义签署请求。

    • VPCOnly— 将其设置为true使导出终端节点仅限 VPC,因此您只能从安装了 Neptune-Export 服务的 VPC 内访问它。这限制了海王星出口 API 仅在该 VPC 内使用。

      建议您将 VPCOnly 设置为 true

    • NumOfFilesULimit — 指定一个在 10,000 到 1,000,000 之间的值nofile中的ulimits容器属性。默认值为 10,000,我们建议保留默认值,除非您的图表包含大量唯一标签。

  4. 选择 Next(下一步)。

  5. Options (选项) 页面上,选择 Next (下一步)

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

    注意

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

    然后选择 Create (创建)

启用从 Neptune 出口访问 Neptune

在 Neptune-Export 安装完成后,请更新Neptune VPC 安全组以允许从海王星出口访问。当海王星出口Amazon CloudFormation堆栈已创建,输出选项卡包括NeptuneExportSecurityGroupID。更新 Neptune VPC 安全组以允许从此 Neptune 导出安全组访问。

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

如果您将 Neptune-Export 终端节点设置为仅 VPC,则只能从安装了 Neptune-Export 服务的 VPC 内访问它。要允许来自 VPC 中的 Amazon EC2 实例的连接,您可以通过该实例进行 Neptune-Export API 调用,请附加NeptuneExportSecurityGroup由Amazon CloudFormation堆栈到 Amazon EC2 实例中。

使用海王星出口 API 运行海王星导出作业

这些区域有:输出选项卡的选项卡Amazon CloudFormation堆栈还包括NeptuneExportApiUri. 无论何时向 Neptune-Export 终端节点发送请求,都可以使用此 URI。

运行导出任务

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

  • 如果你设置EnableIAM以下参数true中的Amazon CloudFormation安装 Neptune-Export 时,你需要Sigv4对海王星出口 API 的所有请求进行签名。我们建议使用awscurl向 API 发出请求。此处的所有示例都假设 IAM 身份验证已启用。

  • 如果你设置VPCOnly以下参数true中的Amazon CloudFormation在安装 Neptune-Export 时堆栈,您必须从 VPC 内调用海王星导出 API,通常是从位于 VPC 中的 Amazon EC2 实例调用。

要开始导出数据,请向NeptuneExportApiUri与终端节点commandoutputS3Path和请求参数endpoint导出参数。

以下是从 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?..." }

如果你打开登录 CloudWatch 使用状态调用提供的 URI 进行日志,然后可以详细监控导出进度:

屏幕截图 CloudWatch 显示日志。

取消正在运行的导出任务

使用取消正在运行的导出任务Amazon Web Services Management Console

  1. 打开Amazon Batch控制台https://console.aws.amazon.com/batch/.

  2. 选择 Jobs (作业)

  3. 根据其查找要取消的正在运行的任务jobID.

  4. Select取消任务.

使用 Neptune 导出 API 取消正在运行的导出作业

发送HTTP DELETE请求NeptuneExportApiUri使用jobID附加了,像这样:

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