Resposta HTTP da consulta/gerenciamento
Status de resposta
A linha de status de resposta HTTP segue os códigos de resposta padrão HTTP. Por exemplo, o código 200 indica êxito.
Os seguintes códigos de status estão em uso no momento, embora qualquer código HTTP válido possa ser retornado.
Código | Subcódigo | Descrição |
---|---|---|
100 | Continuar | O cliente pode continuar a enviar a solicitação. |
200 | OK | A solicitação iniciou o processamento com êxito. |
400 | BadRequest | A solicitação está mal formada e falhou (permanentemente). |
401 | Não Autorizado | O cliente precisa se autenticar primeiro. |
403 | Proibido | A solicitação do cliente foi negada. |
404 | NotFound | A solicitação faz referência a uma entidade não existente. |
413 | PayloadTooLarge | O conteúdo da solicitação excedeu os limites. |
429 | TooManyRequests | A solicitação foi negada devido à limitação. |
504 | Tempo limite | A solicitação atingiu o tempo limite. |
520 | ServiceError | O serviço encontrou um erro ao processar a solicitação. |
Observação
O código 200 status mostra que o processamento da solicitação foi iniciado com êxito e não que foi concluído com êxito. As falhas encontradas durante o processamento da solicitação após o retorno do código de status 200 são chamadas de "falhas de consulta parciais" e, quando são encontradas, indicadores especiais são injetados no fluxo de resposta para alertar o cliente de que eles ocorreram.
Cabeçalhos de resposta
Os cabeçalhos personalizados a seguir serão retornados.
Cabeçalho personalizado | Descrição |
---|---|
x-ms-client-request-id |
O identificador de solicitação exclusivo enviado no cabeçalho da solicitação com o mesmo nome ou algum identificador exclusivo. |
x-ms-activity-id |
Um identificador de correlação global exclusivo para a solicitação. Ele é criado pelo serviço. |
Corpo da resposta
Se o código status for 200, o corpo da resposta será um documento JSON que codifica os resultados do comando de consulta ou gerenciamento como uma sequência de tabelas retangulares. Confira os detalhes abaixo.
Observação
A sequência de tabelas é refletida pelo SDK. Por exemplo, ao usar o .NET Framework biblioteca Kusto.Data, a sequência de tabelas se torna os resultados no System.Data.IDataReader
objeto retornado pelo SDK.
Se o código status indicar um erro 4xx ou 5xx, diferente de 401, o corpo da resposta será um documento JSON que codifica os detalhes da falha. Para obter mais informações, consulte Diretrizes da API REST da Microsoft.
Observação
Se o Accept
cabeçalho não estiver incluído na solicitação, o corpo da resposta de uma falha não será necessariamente um documento JSON.
Codificação JSON de uma sequência de tabelas
A codificação JSON de uma sequência de tabelas é um único recipiente de propriedades JSON com os seguintes pares nome/valor.
Nome | Valor |
---|---|
Tabelas | Uma matriz do recipiente de propriedades Table. |
O recipiente de propriedades Table tem os seguintes pares nome/valor.
Nome | Valor |
---|---|
TableName | Uma cadeia de caracteres que identifica a tabela. |
Colunas | Uma matriz do recipiente de propriedades Column. |
Linhas | Uma matriz da matriz Row. |
O recipiente de propriedades Column tem os seguintes pares nome/valor.
Nome | Valor |
---|---|
ColumnName | Cadeia de caracteres que identifica a coluna. |
Tipo de dados | Uma cadeia de caracteres que fornece o tipo .NET aproximado da coluna. |
ColumnType | Uma cadeia de caracteres que fornece o tipo de dados escalar da coluna. |
A matriz Row tem a mesma ordem que a respectiva matriz Columns.
A matriz Row também tem um elemento que coincide com o valor da linha para a coluna relevante.
Tipos de dados escalares que não podem ser representados em JSON, como datetime
e timespan
, são representados como cadeias de caracteres JSON.
O exemplo a seguir mostra um possível objeto desse tipo, quando ele contém uma única tabela chamada Table_0
que tem uma única coluna Text
do tipo string
e uma única linha.
{
"Tables": [{
"TableName": "Table_0",
"Columns": [{
"ColumnName": "Text",
"DataType": "String",
"ColumnType": "string"
}],
"Rows": [["Hello, World!"]]
}
Outro exemplo:
O significado das tabelas na resposta
Na maioria dos casos, os comandos de gerenciamento retornam um resultado com uma única tabela, contendo as informações geradas pelo comando de gerenciamento. Por exemplo, o .show databases
comando retorna uma única tabela com os detalhes de todos os bancos de dados acessíveis no cluster.
As consultas geralmente retornam várias tabelas. Para cada instrução de expressão tabular, uma ou mais tabelas são geradas em ordem, representando os resultados produzidos pela instrução .
Observação
Pode haver várias dessas tabelas devido a lotes e operadores de bifurcação).
Três tabelas geralmente são produzidas:
Uma @ExtendedProperties tabela que fornece valores adicionais, como instruções de visualização do cliente (informações fornecidas pelo operador de renderização), informações sobre o cursor de banco de dados efetivo da consulta ou informações sobre o uso efetivo da consulta do cache de resultados da consulta.
Para consultas enviadas usando o protocolo v1, a tabela tem uma única coluna do tipo
string
, cujo valor é uma cadeia de caracteres codificada em JSON, como:Valor {"Visualization":"piechart",...} {"Cursor":"637239957206013576"} Para consultas enviadas usando o protocolo v2, a tabela tem três colunas: (1) Uma
integer
coluna chamadaTableId
indicando a qual tabela no conjunto de resultados o registro se aplica; (2) Umastring
coluna chamadaKey
indicando o tipo de informação fornecida pelo registro (valores possíveis:Visualization
,ServerCache
eCursor
); (3) Umadynamic
coluna chamadaValue
fornecendo as informações determinadas por chave.Tableid Chave Valor 1 ServerCache {"OriginalStartedOn":"2021-06-11T07:48:34.6201025Z",...} 1 Visualização {"Visualization":"piechart",...} Uma tabela QueryStatus que fornece informações adicionais sobre a execução da consulta em si, como, se ela foi concluída com êxito ou não, e quais foram os recursos consumidos pela consulta.
Esta tabela tem a seguinte estrutura:
Timestamp Severidade SeverityName StatusCode Statusdescription Contagem RequestId ActivityId SubActivityId ClientActivityId 2020-05-02 06:09:12.7052077 4 Info 0 Consulta concluída com êxito 1 ... ... ... ... Valores de severidade de 2 ou menor indicam falha.
Uma tabela TableOfContents, que é criada por último, e lista as outras tabelas nos resultados.
Um exemplo para esta tabela é:
Ordinal Tipo Nome Id 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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de