

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

 Neptune 支援從 `neptune.read` Amazon S3 讀取資料，然後使用資料執行 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
...
```

**輸入**
+  **來源** （必要） - Amazon S3 URI 至**單一**物件。不支援多個物件的 Amazon S3 字首。
+  **格式** （必要） - `csv` 支援 `parquet`和 。
  +  如需支援的 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 會傳回：
+  **row** - 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()` 請求的記憶體用量和效能會受到各種因素的影響，例如檔案大小、資料欄數、資料列數和檔案格式。根據結構，小型檔案 （例如，CSV 檔案 100MB 或以下、Parquet 檔案 20MB 或以下） 可能會在大多數適合生產的執行個體類型上可靠運作，而較大的檔案可能需要較小的執行個體類型無法提供的大量記憶體。

測試此功能時，建議從小型檔案開始逐步擴展，以確保您的讀取工作負載可以適應您的執行個體大小。如果您注意到`neptune.read()`請求導致out-of-memory例外狀況或執行個體重新啟動，請考慮將檔案分割成較小的區塊、降低檔案複雜性，或升級至較大的執行個體類型。