

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

# 使用查询将数据加载到 Amazon Neptune
<a name="load-data-via-query"></a>

Neptune 支持直接通过查询语言操作写入数据。你可以`MERGE`在 OpenCypher、SPARQL 或 `mergeV()` Gremlin `INSERT` 中使用标准的写入操作来添加或修改图表`mergeE()`中的数据。`CREATE`这些操作适用于增量更新和事务写入。

要从 Amazon S3 加载数据，请将[使用 Amazon Neptune 批量加载程序摄取数据](bulk-load.md)用于需要优化性能的大型数据集。对于一个或几个 Amazon S3 文件中的较小数据集，您可以使用基于查询的加载函数直接在查询中读取和处理数据。

以下基于查询的加载函数可用：

## openCypher: neptune.read ()
<a name="opencypher-neptune-read"></a>

该`neptune.read()`函数在`CALL`子查询中从 Amazon S3 读取 CSV 或 Parquet 文件，允许您在查询时处理和加载数据。

```
CALL neptune.read({
  source: "s3://bucket/data.csv",
  format: "csv"
})
YIELD row
CREATE (n:Person {id: row.id, name: row.name})
```

有关完整文档，请参阅[neptune.read ()](access-graph-opencypher-21-extensions-s3-read.md)。

## SPARQL：加载和卸载
<a name="sparql-load-unload"></a>

SPARQL `LOAD` 操作将 RDF 数据从 URI 导入到命名图中。`UNLOAD`将数据从图表导出到 Amazon S3。

```
LOAD <s3://bucket/data.ttl> INTO GRAPH <http://example.org/graph>
```

有关完整文档，请参阅[使用 SPARQL UPDATE LOAD 将数据导入到 Neptune](sparql-api-reference-update-load.md)。

## Gremlin: io () 步骤
<a name="gremlin-io-step"></a>

你也可以使用 Gremlin 的`g.io(URL).read()`步骤来读取 GraphML[（一种 XML 格式）、](https://tinkerpop.apache.org/docs/current/dev/io/#graphml) Gra [ phSon](https://tinkerpop.apache.org/docs/current/dev/io/#graphson)（一种 JSON 格式）和其他格式的数据文件。

```
g.io("https://example.com/data/my-graph.graphml").read().iterate()
```

使用该`g.io()`步骤读取 HTTPS 网址。要加载您作为 Amazon S3 对象存储的文件，请先生成预签名 URL。然后将该 HTTPS 网址传递给`g.io()`。您可以使用以下 AWS CLI `aws s3 presign`命令生成预签名 URL：

```
aws s3 presign s3://amzn-s3-demo-bucket/data/vertices.graphml
```

有关预签名 URL 的更多信息，请参阅 * Amazon S3 用户指南[中的](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html)下载和上传带有预签名 URL 的对象。*

 有关详细信息[，请参阅](https://tinkerpop.apache.org/docs/current/reference/#io-step)TinkerPop文档。