

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

 Neptune은 Amazon S3에서 데이터를 `neptune.read` 읽은 다음 데이터를 사용하여 openCypher 쿼리(읽기, 삽입, 업데이트)를 실행하는 `CALL` 절차를 지원합니다. 프로시저는 파일의 각 행을 선언된 결과 변수 행으로 생성합니다. 호출자의 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
...
```

**입력**
+  **source**(필수) - **단일** 객체에 대한 Amazon S3 URI입니다. 여러 객체에 대한 Amazon S3 접두사는 지원되지 않습니다.
+  **format**(필수) - `parquet` 및 `csv`가 지원됩니다.
  +  지원되는 Parquet 형식에 대한 자세한 내용은에서 확인할 수 있습니다[지원되는 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는 다음을 반환합니다.
+  **행** - type:Map 
  +  파일의 각 행. 여기서 키는 열이고 값은 각 열에서 찾은 데이터입니다.
  +  속성 액세스()와 같은 각 열의 데이터에 액세스할 수 있습니다`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()` 요청의 메모리 사용량 및 성능은 파일 크기, 열 수, 행 수 및 파일 형식과 같은 다양한 요인의 영향을 받습니다. 구조에 따라 작은 파일(예: 100MB 이하의 CSV 파일, 20MB 이하의 Parquet 파일)은 대부분의 프로덕션에 적합한 인스턴스 유형에서 안정적으로 작동할 수 있는 반면, 큰 파일은 작은 인스턴스 유형이 제공할 수 없는 상당한 메모리가 필요할 수 있습니다.

이 기능을 테스트할 때는 작은 파일로 시작하고 인스턴스 크기에 따라 읽기 워크로드를 수용할 수 있도록 점진적으로 확장하는 것이 좋습니다. out-of-memory 예외 또는 인스턴스 재시작으로 이어지는 `neptune.read()` 요청이 있는 경우 파일을 더 작은 청크로 분할하거나 파일 복잡성을 줄이거나 더 큰 인스턴스 유형으로 업그레이드하는 것이 좋습니다.