Получение информации об асинхронных операциях

Содержание раздела
  1. Получение информации об асинхронных операциях
    1. URL
    2. Заголовки запроса
    3. Тело запроса
    4. Примеры запросов и ответов
      1. Запрос по указанной операции
      2. Запрос по всем операциям логической БД
      3. Запрос по всем операциям окружения

Доступны GET-методы со следующими возможностями:

URL

  • {baseUrl}/api/v1/datamarts[/{datamart}]/query/{requestId} — позволяет получить информацию по асинхронной операции, исполняющей запрос с идентификатором requestId;
  • {baseUrl}/api/v1/datamarts[/{datamart}]/queries — позволяет получить информацию по асинхронным операциям следующих логических баз данных:
    • указанной логической БД — если URL содержит имя логической БД datamart;
    • всех логических БД окружения — если URL не содержит имя логической БД.

Параметры:

  • baseUrl — адрес ноды Prostore, состоящий из IP-адреса или доменного имени и номера порта;
  • datamart (опциональный) — имя логической базы данных, по которой запрашивается информация об асинхронных операциях;
  • requestId — уникальный идентификатор асинхронного запроса, полученный в ответе query.

Заголовки запроса

Поддерживаются опциональные заголовки:

  • x-request-id — задает уникальный идентификатор HTTP-запроса. Если не указан, система генерирует UUID-значение и возвращает его в качестве идентификатора в ответе;
  • Authorization — задает тип аутентификации и авторизационный токен (JWT). Возможное значение типа аутентификации — Bearer.

Подробнее об аутентификации запросов см. в разделе Аутентификация.

Тело запроса

Тело запроса отсутствует.

Примеры запросов и ответов

Запрос по указанной операции

Запрос без авторизационного токена:

curl -X 'GET' \
  'http://localhost:9090/api/v1/datamarts/marketing/query/234567' \
  -H 'x-request-id: e3793ee4-8e63-4d83-9fba-0af49f9c251f' 

Запрос с авторизационным токеном:

curl -X 'GET' \
  'http://localhost:9090/api/v1/datamarts/marketing/query/234567' \
  -H 'x-request-id: 65443cdd-7cd1-430e-9dd6-a87444b279c7' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'

Ответ по выполняемой операции:

{
  "status": "running",
  "statusCode": 0,
  "datamart": "marketing",
  "table": "sales",
  "topic": "sales_in",
  "query": "INSERT INTO marketing.sales SELECT * FROM marketing.sales_ext_upload",
  "startTime": "2023-09-04 16:06:28",
  "errorTime": null,
  "errorCause": null
}

Ответ по неуспешной операции:

{
  "status": "error",
  "statusCode": 2,
  "datamart": "marketing",
  "table": "sales",
  "topic": null,
  "query": "INSERT INTO marketing.sales SELECT * FROM marketing.sales_ext_upload",
  "startTime": "2023-09-04 16:13:45",
  "errorTime": "2023-09-04 16:13:46",
  "errorCause": "Table[all_types] blocked: KeeperErrorCode = NodeExists"
}

Ответ по успешно обработанной или несуществующей операции:

{
  "exceptionMessage": "Request [e3793ee4-8e63-4d83-9fba-0af49f9c251f] not found"
}

Запрос по всем операциям логической БД

Запрос без авторизационного токена:

curl -X 'GET' \
  'http://localhost:9090/api/v1/datamarts/marketing/queries' \
  -H 'x-request-id: 00aba5b2-880e-4e7e-8cb5-4cd8dbf5efda' 

Запрос с авторизационным токеном:

curl -X 'GET' \
  'http://localhost:9090/api/v1/datamarts/marketing/queries' \
  -H 'x-request-id: 80e16861-b420-4142-8f68-f89b7774b0f1' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'

Ответ:

[
  {
    "id": "2f8b7a67-a17e-4f71-a0f0-22249c005d5c",
    "datamart": "marketing",
    "table": "stores",
    "status": "running",
    "statusCode": 0,
    "startTime": "2023-09-04 16:06:28"
  },
  {
    "id": "c0a8b9e8-34d0-4e2b-b35c-c7e6c812de45",
    "datamart": "marketing",
    "table": "clients",
    "status": "error",
    "statusCode": 2,
    "startTime": "2023-09-04 16:13:45"
  }
]

Запрос по всем операциям окружения

Запрос без авторизационного токена:

curl -X 'GET' \
  'http://localhost:9090/api/v1/datamarts/queries' \
  -H 'x-request-id: b547955b-ce69-4d38-a89d-8ba16685961d'

Запрос с авторизационным токеном:

curl -X 'GET' \
  'http://localhost:9090/api/v1/datamarts/queries' \
  -H 'x-request-id: 1476a7bd-1504-4adc-81ae-d5b77e21181f' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'

Ответ:

[
  {
    "id": "2f8b7a67-a17e-4f71-a0f0-22249c005d5c",
    "datamart": "marketing",
    "table": "stores",
    "status": "running",
    "statusCode": 0,
    "startTime": "2023-09-04 16:06:28"
  },
  {
    "id": "c0a8b9e8-34d0-4e2b-b35c-c7e6c812de45",
    "datamart": "marketing_new",
    "table": "sales",
    "status": "error",
    "statusCode": 2,
    "startTime": "2023-09-04 16:13:45"
  }
]