Поделиться через


HTTP-запрос для запроса или управления

Область применения: ✅Microsoft Fabric✅Azure Data Explorer

Команда запроса и ресурс

Действие HTTP-команда Ресурс HTTP
Query GET /v1/rest/query
Query POST /v1/rest/query
Запрос версии 2 GET /v2/rest/query
Запрос версии 2 POST /v2/rest/query
Управление POST /v1/rest/mgmt

Например, чтобы отправить команду управления ("управление") в конечную точку службы, используйте следующую строку запроса:

POST https://help.kusto.windows.net/v1/rest/mgmt HTTP/1.1

Ознакомьтесь с заголовками запросов и текстом, чтобы узнать, что нужно включить.

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

В следующей таблице содержатся общие заголовки, используемые для операций запроса и управления.

Стандартный заголовок Description Обязательно/Необязательно
Accept Типы носителей, получаемые клиентом. Задайте значение application/json. Обязательное поле
Accept-Encoding Поддерживаемые кодировки содержимого. Поддерживаются gzip кодировки и deflate. Необязательно
Authorization Учетные данные проверки подлинности. Дополнительные сведения см. в разделе проверки подлинности. Обязательное поле
Connection Остается ли подключение открытым после операции. Рекомендуется задать значение Connection Keep-Alive. Необязательно
Content-Length Размер текста запроса. Укажите длину текста запроса, если известно. Необязательно
Content-Type Тип носителя текста запроса. Установите значение с параметром application/json charset=utf-8. Обязательное поле
Expect Ожидаемый ответ от сервера. Для него можно задать значение 100-Continue. Необязательно
Host Полное доменное имя, в которое был отправлен запрос. Например, help.kusto.windows.net. Обязательное поле

В следующей таблице содержатся общие пользовательские заголовки, используемые для операций запроса и управления. Если не указано, эти заголовки используются только для целей телеметрии и не влияют на функциональные возможности.

Все заголовки являются необязательными. Однако рекомендуется x-ms-client-request-id указать пользовательский заголовок. В некоторых сценариях, таких как отмена выполняемого запроса, x-ms-client-request-id требуется, так как он используется для идентификации запроса.

Пользовательский заголовок Description
x-ms-app Понятное имя приложения, выполняющего запрос.
x-ms-user Понятное имя пользователя, выполняющего запрос.
x-ms-user-id То же понятное имя, что x-ms-userи .
x-ms-client-request-id Уникальный идентификатор запроса.
x-ms-client-version Понятный идентификатор версии для клиента, выполняющего запрос.
x-ms-readonly Если задано, запрос выполняется в режиме только для чтения, что предотвращает изменение данных запроса.

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

Следующие параметры можно передать в запросе. Они кодируются в запросе в качестве параметров запроса или в составе текста в зависимости от того, используется ли GET или POST.

Параметр Описание Обязательно/Необязательно
csl Текст выполняемой команды запроса или управления. Обязательное поле
db Имя базы данных, которая является целью команды запроса или управления. Необязательно для некоторых команд управления.
Требуется для всех запросов и всех других команд.
properties Запрос свойств, изменяющих способ обработки запроса и его результатов. Дополнительные сведения см. в разделе "Свойства запроса". Необязательно

Параметры запроса GET

При использовании запроса GET параметры запроса указывают параметры запроса.

Текст

При использовании запроса POST текст запроса содержит один документ JSON в кодировке UTF-8, включающий значения параметров запроса.

Примеры

В следующем примере показан HTTP-запрос POST для запроса.

POST https://help.kusto.windows.net/v2/rest/query HTTP/1.1

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

Accept: application/json
Authorization: Bearer ...AzureActiveDirectoryAccessToken...
Accept-Encoding: deflate
Content-Type: application/json; charset=utf-8
Host: help.kusto.windows.net
x-ms-client-request-id: MyApp.Query;e9f884e4-90f0-404a-8e8b-01d883023bf1
x-ms-user-id: EARTH\davidbg
x-ms-app: MyApp

Текст запроса

{
  "db":"Samples",
  "csl":"print Test=\"Hello, World!\"",
  "properties":"{\"Options\":{\"queryconsistency\":\"strongconsistency\"},\"Parameters\":{},\"ClientRequestId\":\"MyApp.Query;e9f884e4-90f0-404a-8e8b-01d883023bf1\"}"
}

В следующем примере показано, как создать запрос, который отправляет предыдущий запрос с помощью curl.

  1. Получите маркер для проверки подлинности.

    Замените AAD_TENANT_NAME_OR_ID, а также AAD_APPLICATION_KEY соответствующими значениями после настройки проверки подлинности приложения AAD_APPLICATION_IDMicrosoft Entra.

    curl "https://login.microsoftonline.com/AAD_TENANT_NAME_OR_ID/oauth2/token" \
      -F "grant_type=client_credentials" \
      -F "resource=https://help.kusto.windows.net" \
      -F "client_id=AAD_APPLICATION_ID" \
      -F "client_secret=AAD_APPLICATION_KEY"
    

    Этот фрагмент кода предоставляет маркер носителя.

    {
      "token_type": "Bearer",
      "expires_in": "3599",
      "ext_expires_in":"3599", 
      "expires_on":"1578439805",
      "not_before":"1578435905",
      "resource":"https://help.kusto.windows.net",
      "access_token":"eyJ0...uXOQ"
    }
    
  2. Используйте маркер носителя в запросе к конечной точке запроса.

    curl -d '{"db":"Samples","csl":"print Test=\"Hello, World!\"","properties":"{\"Options\":{\"queryconsistency\":\"strongconsistency\"}}"}"' \
    -H "Accept: application/json" \
    -H "Authorization: Bearer eyJ0...uXOQ" \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "Host: help.kusto.windows.net" \
    -H "x-ms-client-request-id: MyApp.Query;e9f884e4-90f0-404a-8e8b-01d883023bf1" \
    -H "x-ms-user-id: EARTH\davidbg" \
    -H "x-ms-app: MyApp" \
    -X POST https://help.kusto.windows.net/v2/rest/query
    
  3. Считывает ответ в соответствии с кодами состояния ответа.

Задание свойств запроса клиента и параметров запроса

В следующем примере текста запроса запрос в csl поле объявляет два параметра с именем n и d. Значения этих параметров запроса указываются в Parameters поле под полем в тексте properties запроса. Поле Options определяет свойства запроса клиента.

Примечание.

Нестроковые и не длинные параметры должны быть выражены как литералы KQL в строковом формате.

{
    "db": "Samples",
    "csl": "declare query_parameters (n:long, d:dynamic); StormEvents | where State in (d) | top n by StartTime asc",
    "properties": {
        "Options": {
            "maxmemoryconsumptionperiterator": 68719476736,
            "max_memory_consumption_per_query_per_node": 68719476736,
            "servertimeout": "50m"
        },
        "Parameters": {
            "n": 10, "d": "dynamic([\"ATLANTIC SOUTH\"])"
        }
    }
}

Дополнительные сведения см. в разделе "Поддерживаемые свойства запроса".

Отправка команды политики кэширования базы данных

В следующем примере отправляется запрос на отображение Samples политики кэширования базы данных.


{
    "db": "Samples",
    "csl": ".show database Samples policy caching",
    "properties": {
        "Options": {
            "maxmemoryconsumptionperiterator": 68719476736,
            "max_memory_consumption_per_query_per_node": 68719476736,
            "servertimeout": "50m"
        }
    }
}