Overview
The Analytics Service REST API is provided by the Analytics service. This API enables you to run Analytics queries and set request-level parameters.
Version information
Version : 7.6
Host information
{scheme}://{host}:{port}
The URL scheme, host, and port are as follows.
Component | Description |
---|---|
scheme |
The URL scheme. Use Values: |
host |
The host name or IP address of a node running the Analytics service. Example: |
port |
The Analytics service REST port. Use Values: |
Resources
This section describes the operations available with this REST API.
Read-Only Query Service (Alternative)
Read-Only Query Service
Query Service (Alternative)
Query Service
Read-Only Query Service (Alternative)
GET /query/service
Description
An alternative endpoint for the Read-Only Query Service, provided for tools compatibility.
Parameters
Name | Description | Schema |
---|---|---|
body |
Specify the parameters in the query URL in URL-encoded format. |
Responses
HTTP Code | Description | Schema |
---|---|---|
200 |
The operation was successful. |
|
400 |
Bad request. A parameter has an incorrect value. |
|
401 |
Unauthorized. The user name or password may be incorrect. |
Read-Only Query Service
GET /analytics/service
Description
Enables you to execute a SQL++ for Analytics statement. This method only allows you to run queries and specify query parameters. It does not allow you to run modifying statements.
This is intended for situations where use of the POST
method is restricted.
Parameters
Name | Description | Schema |
---|---|---|
body |
Specify the parameters in the query URL in URL-encoded format. |
Responses
HTTP Code | Description | Schema |
---|---|---|
200 |
The operation was successful. |
|
400 |
Bad request. A parameter has an incorrect value. |
|
401 |
Unauthorized. The user name or password may be incorrect. |
Example HTTP Request
The example below uses a URL-encoded query parameter.
The SQL++ statement is SELECT "hello, beer!" AS greeting
.
curl -v -u Administrator:password \
http://localhost:8095/analytics/service?statement=SELECT%20%22hello%2C%20beer%21%22%20AS%20greeting
Example HTTP Response
{
"requestID": "bbf382b1-4335-4a10-9eca-3b5d1a70b562",
"signature": {
"*": "*"
},
"results": [ { "greeting": "hello, beer!" }
]
,
"plans":{},
"status": "success",
"metrics": {
"elapsedTime": "56.893471ms",
"executionTime": "51.615165ms",
"resultCount": 1,
"resultSize": 31,
"processedObjects": 0
}
}
Query Service (Alternative)
POST /query/service
Description
An alternative endpoint for the Query Service, provided for tools compatibility.
Parameters
By default, the API accepts parameters using the application/x-www-form-urlencoded
MIME type.
You can specify the application/json
MIME type using the Content-Type
header of the POST request.
Name | Description | Schema |
---|---|---|
Body |
An object specifying one or more query parameters. |
Query Service
POST /analytics/service
Description
Enables you to execute a SQL++ for Analytics statement. This method allows you to run queries and modifying statements, and specify query parameters.
Parameters
By default, the API accepts parameters using the application/x-www-form-urlencoded
MIME type.
You can specify the application/json
MIME type using the Content-Type
header of the POST request.
Name | Description | Schema |
---|---|---|
Body |
An object specifying one or more query parameters. |
Responses
HTTP Code | Description | Schema |
---|---|---|
200 |
The operation was successful. |
|
400 |
Bad request. A parameter has an incorrect value. |
|
401 |
Unauthorized. The user name or password may be incorrect. |
Example HTTP Requests
The example below uses URL-encoded data.
curl -v -u Administrator:password \
--data-urlencode "statement=select 1;" \
http://localhost:8095/analytics/service
The example below posts the same query statement as data of type application/json
and adds a client context ID.
curl -v -u Administrator:password -H "Content-Type: application/json" -d '{
"statement":"select 1;",
"pretty":true,
"client_context_id":"xyz"
}' http://localhost:8095/analytics/service
Example HTTP Response
{
"requestID": "c1984db0-f135-48ee-aea0-39dfe02d55ea",
"clientContextID": "xyz",
"signature": {
"*": "*"
},
"results": [ {
"$1" : 1
} ]
,
"plans":{},
"status": "success",
"metrics": {
"elapsedTime": "41.969099ms",
"executionTime": "31.36645ms",
"resultCount": 1,
"resultSize": 15,
"processedObjects": 0
}
}
Definitions
This section describes the properties consumed and returned by this REST API.
Query Parameters
Common Parameters
Analytics Parameters
Query Responses
Common Responses
Errors
Warnings
Common Metrics
Analytics Responses
Plans
Analytics Metrics
Common Parameters
Property | Schema | |
---|---|---|
statement |
Specifies at least one valid SQL++ for Analytics statement to run. |
String |
client_context_id |
An identifier passed by the client that is returned verbatim in the query response. Useful for matching a particular query to a specific caller. |
String |
format |
Desired format for the query results. Note that the only possible format is Values: |
String |
pretty |
If Default: |
Boolean |
query_context |
A scope for the statement. The value of this parameter must start with Default: |
String |
readonly |
If Default: |
Boolean |
scan_consistency |
The consistency guarantee constraint for index scanning. If Values: |
String |
scan_wait |
The maximum time to wait for datasets to be updated before the query is executed. The format includes an amount and a unit: Default: |
String |
timeout |
Maximum time to spend on the request before timing out. The format includes an amount and a unit: Default: |
String |
args |
An array of positional parameter values. |
Any Type array |
additional |
A named parameter value. |
Any Type |
Analytics Parameters
Property | Schema | |
---|---|---|
plan-format |
The plan format. Values: |
String |
logical-plan |
If Default: |
Boolean |
optimized-logical-plan |
If Default: |
Boolean |
expression-tree |
If Default: |
Boolean |
rewritten-expression-tree |
If Default: |
Boolean |
job |
If Default: |
Boolean |
max-warnings |
An integer specifying the maximum number of warning messages to be included in the query response. Default: |
Integer (int32) |
Common Responses
Property | Schema | |
---|---|---|
requestID |
A unique identifier for the response. |
UUID (UUID) |
clientContextID |
The client context ID of the request, if one was supplied —
refer to |
String |
signature |
The schema of the results. Present only when the query completes successfully. |
Object |
results |
An array of all the objects returned by the query. An object can be any JSON value. |
Any Type array |
status |
The status of the request. Values: |
String |
errors |
An array of error objects. Present only if 1 or more errors are returned during processing of the request. Each error is represented by an object in this list. |
Errors array |
warnings |
An array of warning objects. Present only if 1 or more warnings are returned during processing of the request. Each warning is represented by an object in this list. Note that you can specify the maximum number of warning messages to be returned in the query response —
refer to |
Warnings array |
metrics |
An object containing metrics about the request. |
Errors
Property | Schema | |
---|---|---|
code |
A number that identifies the error. |
Integer |
msg |
A message describing the error in detail. Refer to Error Codes. |
String |
Warnings
Property | Schema | |
---|---|---|
code |
A number that identifies the warning. |
Integer |
msg |
A message describing the warning in detail. |
String |
Common Metrics
Property | Schema | |
---|---|---|
elapsedTime |
The total time taken for the request, that is the time from when the request was received until the results were returned. |
String |
executionTime |
The time taken for the execution of the request, that is the time from when query execution started until the results were returned. |
String |
resultCount |
The total number of objects in the results. |
Integer (unsigned) |
resultSize |
The total number of bytes in the results. |
Integer (unsigned) |
errorCount |
The number of errors that occurred during the request. |
Integer (unsigned) |
warningCount |
The number of warnings that occurred during the request. |
Integer (unsigned) |
Analytics Responses
Property | Schema | |
---|---|---|
plans |
An object containing the query plans, if requested. |
|
metrics |
An object containing metrics about the request. |
Plans
Property | Schema | |
---|---|---|
logicalPlan |
The logical plan. |
Object |
optimizedLogicalPlan |
The optimized logical plan. |
Object |
rewrittenExpressionTree |
The rewritten expression tree. |
String |
expressionTree |
The expression tree. |
String |
job |
The job details. |
Object |
The structure and content of query plans is expected to change as development of the query processor progresses. |
Security
The Analytics Service REST API supports HTTP basic authentication. Credentials can be passed via HTTP headers.
Analytics Manage Analytics Select
Users must have one of the following RBAC roles:
- Full Admin
- Cluster Admin
- Analytics Manager
- Analytics Reader
- Analytics Select
- Analytics Admin
Type : http
Refer to Roles for more details.