

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

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

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

要从 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 格式）、[G](https://tinkerpop.apache.org/docs/current/dev/io/#graphml) raphS [on](https://tinkerpop.apache.org/docs/current/dev/io/#graphson)（JSON 格式）和其他格式的数据文件。

```
g.io("s3://bucket/data.graphml").read().iterate()
```

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