executeGremlinExplainQuery method

Future<ExecuteGremlinExplainQueryOutput> executeGremlinExplainQuery({
  1. required String gremlinQuery,
})

Executes a Gremlin Explain query.

Amazon Neptune has added a Gremlin feature named explain that provides is a self-service tool for understanding the execution approach being taken by the Neptune engine for the query. You invoke it by adding an explain parameter to an HTTP call that submits a Gremlin query.

The explain feature provides information about the logical structure of query execution plans. You can use this information to identify potential evaluation and execution bottlenecks and to tune your query, as explained in Tuning Gremlin queries. You can also use query hints to improve query execution plans.

When invoking this operation in a Neptune cluster that has IAM authentication enabled, the IAM user or role making the request must have a policy attached that allows one of the following IAM actions in that cluster, depending on the query:

Note that the neptune-db:QueryLanguage:Gremlin IAM condition key can be used in the policy document to restrict the use of Gremlin queries (see Condition keys available in Neptune IAM data-access policy statements).

May throw BadRequestException. May throw CancelledByUserException. May throw ClientTimeoutException. May throw ConcurrentModificationException. May throw ConstraintViolationException. May throw FailureByQueryException. May throw IllegalArgumentException. May throw InvalidArgumentException. May throw InvalidParameterException. May throw MalformedQueryException. May throw MemoryLimitExceededException. May throw MissingParameterException. May throw ParsingException. May throw PreconditionsFailedException. May throw QueryLimitExceededException. May throw QueryLimitException. May throw QueryTooLargeException. May throw TimeLimitExceededException. May throw TooManyRequestsException. May throw UnsupportedOperationException.

Parameter gremlinQuery : The Gremlin explain query string.

Implementation

Future<ExecuteGremlinExplainQueryOutput> executeGremlinExplainQuery({
  required String gremlinQuery,
}) async {
  final $payload = <String, dynamic>{
    'gremlin': gremlinQuery,
  };
  final response = await _protocol.sendRaw(
    payload: $payload,
    method: 'POST',
    requestUri: '/gremlin/explain',
    exceptionFnMap: _exceptionFns,
  );
  return ExecuteGremlinExplainQueryOutput(
    output: await response.stream.toBytes(),
  );
}