

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

# neptune.read ()
<a name="access-graph-opencypher-21-extensions-s3-read"></a>

 Neptune 支持从亚马逊 S3 读取数据，然后使用这些数据运行 OpenCypher 查询（读取、插入、更新）的`CALL`过程`neptune.read`。该过程将文件中的每一行作为声明的结果变量行生成。它使用调用者的 IAM 凭证来访问 Amazon S3 中的数据。[管理 neptune.read () 的权限](access-graph-opencypher-21-extensions-s3-read-permissions.md)要设置权限，请参阅。Amazon S3 存储桶的区域必须与实例所在的区域相同。 AWS 当前，不支持跨区域读取。

 **语法** 

```
CALL neptune.read(
  {
    source: "string",
    format: "parquet/csv",
    concurrency: 10
  }
)
YIELD row
...
```

**输入**
+  **来源**（必填）-**单个**对象的 Amazon S3 URI。不支持多个对象的 Amazon S3 前缀。
+  **格式**（必填）-`parquet` 并`csv`受支持。
  +  有关所支持的 Parquet 格式的更多详细信息，请参阅[支持的镶木地板柱类型](access-graph-opencypher-21-extensions-s3-read-parquet.md#access-graph-opencypher-21-extensions-s3-read-parquet-column-types)。
  +  有关支持的 csv 格式的更多信息，请参阅[Gremlin 加载数据格式](bulk-load-tutorial-format-gremlin.md)。
+  **并发**（可选）-类型：0 或更大的整数。默认值：0。指定用于读取文件的线程数。如果该值为 0，则将使用资源允许的最大线程数。对于 Parquet，建议将其设置为多个行组。

**输出**

 neptune.read 返回：
+  **行**-类型:地图 
  +  文件中的每一行，其中键是列，值是每列中的数据。
  +  您可以像访问属性一样访问每列的数据 (`row.col`)。

## neptune.read 的最佳实践 ()
<a name="access-graph-opencypher-21-extensions-s3-read-best-practices"></a>

Neptune S3 读取操作可能占用大量内存。请使用非常适合生产工作负载的实例类型，如为 [Amazon Neptune 选择实例类型](instance-types.md)中所述。

`neptune.read()`请求的内存使用和性能会受到多种因素的影响，例如文件大小、列数、行数和文件格式。根据结构的不同，小文件（例如，100 MB 或更小的 CSV 文件、20MB 或以下的 Parquet 文件）可能在大多数适合生产的实例类型上可靠地运行，而较大的文件可能需要较小的实例类型无法提供的大量内存。

在测试此功能时，建议从小文件开始，然后逐渐扩展，以确保您的读取工作负载可以适应您的实例大小。如果您发现`neptune.read()`请求导致内存不足异常或实例重启，请考虑将文件拆分为较小的块、降低文件复杂性或升级到更大的实例类型。