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

Состояние ответа

Строка состояния HTTP-ответа соответствует стандартным кодам ответа HTTP. Например, код 200 указывает на успешное выполнение.

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

Код Subcode Описание
100 Продолжить Клиент может продолжать отправлять запрос.
200 ОК Запрос успешно начал обработку.
400 BadRequest Запрос формируется неправильно и завершается сбоем (безвозвратно).
401 Не авторизовано Сначала клиент должен пройти проверку подлинности.
403 Запрещено Запрос клиента отклонен.
404 NotFound Запрос ссылается на несуществующий объект.
413 PayloadTooLarge Превышение лимита полезных данных запроса.
429 TooManyRequests Запрос был отклонен из-за регулирования.
504 Время ожидания Истекло время ожидания запроса.
520 ServiceError Служба обнаружила ошибку при обработке запроса.

Примечание

Код состояния 200 показывает, что обработка запроса успешно запущена, а не успешно завершена. Сбои, возникшие во время обработки запроса после возврата кода состояния 200, называются частичными сбоями запросов, а при их обнаружении в поток ответа внедряются специальные индикаторы, чтобы предупредить клиента о том, что они произошли.

Заголовки ответов

Будут возвращены следующие пользовательские заголовки.

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

Текст ответа

Если код состояния равен 200, текст ответа представляет собой документ JSON, который кодирует результаты запроса или команды управления в виде последовательности прямоугольных таблиц. Подробности см. ниже.

Примечание

Последовательность таблиц отражается пакетом SDK. Например, при использовании библиотеки платформа .NET Framework Kusto.Data последовательность таблиц затем становится результатом в объектеSystem.Data.IDataReader, возвращаемом пакетом SDK.

Если код состояния указывает на ошибку 4xx или 5xx, отличное от 401, текст ответа представляет собой документ JSON, который кодирует сведения о сбое. Дополнительные сведения см. в статье Рекомендации по REST API Майкрософт.

Примечание

Если заголовок Accept не включен в запрос, текст ответа на ошибку не обязательно является документом JSON.

Кодировка JSON последовательности таблиц

Кодировка JSON последовательности таблиц представляет собой один контейнер свойств JSON со следующими парами "имя-значение".

Имя Значение
Tables Массив контейнера свойств Table.

Контейнер свойств Table содержит следующие пары "имя-значение".

Имя Значение
TableName Строка, идентифицирующая таблицу.
Столбцы Массив контейнера свойств Column.
Строки Массив массива Строк.

Контейнер свойств Column содержит следующие пары "имя-значение".

Имя Значение
ColumnName Строка, определяющая столбец.
DataType Строка, которая предоставляет приблизительный тип .NET столбца.
ColumnType Строка, предоставляющая скалярный тип данных столбца.

Массив Строк имеет тот же порядок, что и соответствующий массив Columns. Массив Row также содержит один элемент, совпадающий со значением строки для соответствующего столбца. Скалярные типы данных, которые не могут быть представлены в JSON, такие как datetime и timespan, представляются в виде строк JSON.

В следующем примере показан один из возможных таких объектов, если он содержит одну таблицу с именем Table_0 , которая содержит один столбец Text типа stringи одну строку.

{
    "Tables": [{
        "TableName": "Table_0",
        "Columns": [{
            "ColumnName": "Text",
            "DataType": "String",
            "ColumnType": "string"
        }],
        "Rows": [["Hello, World!"]]
}

Еще один пример:

Снимок экрана: древовидное представление JSON-файла, содержащего массив объектов Table.

Значение таблиц в ответе

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

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

Примечание

Таких таблиц может быть несколько из-за пакетов и операторов вилки.

Часто создаются три таблицы:

  • Таблица @ExtendedProperties , которая предоставляет дополнительные значения, такие как клиентские инструкции визуализации (сведения, предоставляемые оператором render), сведения об эффективном курсоре базы данных запроса или сведения об эффективном использовании запроса кэша результатов запроса.

    Для запросов, отправленных по протоколу версии 1, таблица содержит один столбец типа string, значением которого является строка в кодировке JSON, например:

    Значение
    {"Визуализация":"piechart",...}
    {"Cursor":"637239957206013576"}

    Для запросов, отправленных по протоколу версии 2, таблица содержит три столбца: (1) столбец integer с именем TableId , указывающий, к какой таблице в результирующих наборах применяется запись; (2) Столбец string с именем Key , указывающий тип информации, предоставляемой записью (возможные значения: Visualization, ServerCacheи Cursor); (3) Столбец dynamic с именем Value , предоставляющий сведения, определяемые ключом.

    TableId Ключ Значение
    1 ServerCache {"OriginalStartedOn":"2021-06-11T07:48:34.6201025Z",...}
    1 Визуализация {"Визуализация":"piechart",...}
  • Таблица QueryStatus, которая предоставляет дополнительные сведения о выполнении самого запроса, например, успешно ли он выполнен или нет, и какие ресурсы были использованы запросом.

    Эта таблица имеет следующую структуру:

    Отметка времени Статус SeverityName StatusCode Описание состояния Count RequestId ActivityId SubActivityId ClientActivityId
    2020-05-02 06:09:12.7052077 4 Info 0 Запрос успешно завершен 1 ... ... ... ...

    Значения серьезности 2 или меньше указывают на сбой.

  • Таблица TableOfContents, которая создается последней, и перечисляет другие таблицы в результатах.

    Пример для этой таблицы:

    Порядковый номер Kind Имя Идентификатор PrettyName
    0 QueryResult PrimaryResult db9520f9-0455-4cb5-b257-53068497605a
    1 QueryProperties @ExtendedProperties 908901f6-5319-4809-ae9e-009068c267c7
    2 QueryStatus QueryStatus 00000000-0000-0000-0000-000000000000