

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

# 将自定义 ID 注入到 Neptune Gremlin 或 SPARQL 查询中
<a name="features-query-id"></a>

默认情况下，Neptune 为每个查询分配一个唯一的 `queryId` 值。您可以使用该 ID 获取有关正在运行的查询的信息（请参阅 [Gremlin 查询状态 API](gremlin-api-status.md) 或 [SPARQL 查询状态 API](sparql-api-status.md)），也可以取消查询（请参阅 [Gremlin 查询取消](gremlin-api-status-cancel.md) 或 [SPARQL 查询取消](sparql-api-status-cancel.md)）。

Neptune 还允许您在 HTTP 标头中为 Gremlin 或 SPARQL 查询指定自己的 `queryId` 值，或者通过使用 `queryId` 查询提示为 SPARQL 查询指定该值。分配自己的 `queryID` 可轻松跟踪查询来获取状态或取消查询。

## 使用 HTTP 标头注入自定义 `queryId` 值
<a name="features-query-id-header"></a>

对于 Gremlin 和 SPARQL，都可以使用 HTTP 标头将您自己的 `queryId` 值注入到查询中。

**Gremlin 示例**

```
curl -XPOST https://your-neptune-endpoint:port \
    -d "{\"gremlin\": \
        \"g.V().limit(1).count()\" , \
        \"queryId\":\"4d5c4fae-aa30-41cf-9e1f-91e6b7dd6f47\"  }"
```

**SPARQL 示例**

```
curl https://your-neptune-endpoint:port/sparql \
    -d "query=SELECT * WHERE { ?s ?p ?o } " \
       --data-urlencode \
       "queryId=4d5c4fae-aa30-41cf-9e1f-91e6b7dd6f47"
```

## 使用 SPARQL 查询提示注入自定义 `queryId` 值
<a name="features-query-id-hint"></a>

以下是使用 SPARQL `queryId` 查询提示将自定义 `queryId` 值注入到 SPARQL 查询中的示例：

```
curl https://your-neptune-endpoint:port/sparql \
    -d "query=PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> \
       SELECT * WHERE { hint:Query hint:queryId \"4d5c4fae-aa30-41cf-9e1f-91e6b7dd6f47\" \
       {?s ?p ?o}}"
```

## 使用 `queryId` 值检查查询状态
<a name="features-query-id-check-status"></a>

**Gremlin 示例**

```
curl https://your-neptune-endpoint:port/gremlin/status \
    -d "queryId=4d5c4fae-aa30-41cf-9e1f-91e6b7dd6f47"
```

**SPARQL 示例**

```
curl https://your-neptune-endpoint:port/sparql/status \
    -d "queryId=4d5c4fae-aa30-41cf-9e1f-91e6b7dd6f47"
```