

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

# 使用查詢將資料載入 Amazon Neptune
<a name="load-data-via-query"></a>

Neptune 支援直接透過查詢語言操作寫入資料。您可以使用 `CREATE` `MERGE` openCypher、`INSERT`SPARQL 或 Gremlin `mergeE()`中的 `mergeV()`和 等標準寫入操作來新增或修改圖形中的資料。這些操作適用於增量更新和交易寫入。

若要從 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：LOAD 和 UNLOAD
<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](https://tinkerpop.apache.org/docs/current/dev/io/#graphml) (XML 格式）、[GraphSON](https://tinkerpop.apache.org/docs/current/dev/io/#graphson) (JSON 格式） 和其他格式讀取資料檔案。

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

使用 `g.io()` 步驟從 HTTPS URL 讀取。若要載入您存放為 Amazon S3 物件的檔案，請先產生預先簽章的 URL。然後將該 HTTPS URL 傳遞至 `g.io()`。您可以使用 `aws s3 presign`命令產生預先簽章的 AWS CLI URL：

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

如需預先簽章 URLs 的詳細資訊，請參閱《*Amazon S3 使用者指南*》中的[使用預先簽章 URLs 下載和上傳物件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html)。

 如需詳細資訊，請參閱 [TinkerPop 文件](https://tinkerpop.apache.org/docs/current/reference/#io-step)。