本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Neptune-Export 服务导出 Neptune 数据
您可以使用以下步骤,通过 Neptune-Export 服务将数据从 Neptune 数据库集群导出到 Amazon S3:
安装 Neptune-Export 服务
使用 Amazon CloudFormation 模板创建堆栈:
安装 Neptune-Export 服务
-
通过选择下表中的启动堆栈按钮之一,在 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 中查看 在 Select Template 页面上,选择 Next。
-
在模板的指定详细信息页面上,设置以下参数:
-
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 集群,则可以使用该堆栈中的
PrivateSubnet1
和PrivateSubnet2
输出来填充此参数和下一个参数。 -
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 端点来调用导出服务,详见此处。
-
选择下一步。
在选项页面上,选择下一步。
-
在审核页面上,选中第一个复选框以确认 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 实例调用。
要开始导出数据,请使用 command
和 outputS3Path
请求参数以及 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 中打开日志,则可以详细监控导出的进度:
取消正在运行的导出任务
使用 Amazon Web Services Management Console 取消正在运行的导出任务
打开Amazon Batch控制台,地址:https://console.aws.amazon.com/batch/
。 选择 Jobs (作业)。
根据要取消的正在运行的任务的
jobID
,找到该任务。选择取消任务。
使用 Neptune 导出 API 取消正在运行的导出任务:
向附有 jobID
的 NeptuneExportApiUri
发送 HTTP DELETE
请求,如下所示:
curl -X DELETE \
(your NeptuneExportApiUri)
(the job ID)