Visão geral da consulta do Kusto

Uma consulta do Kusto é uma solicitação somente leitura para processar dados e retornar resultados. A solicitação é declarada em texto sem formatação, usando um modelo de fluxo de dados projetado para facilitar a criação, a leitura e a automatização da sintaxe. A consulta usa entidades de esquema que são organizadas em uma hierarquia semelhante à do SQL: bancos de dados, tabelas e colunas.

A consulta consiste em uma sequência de instruções de consulta, delimitadas por ponto e vírgula (;), com pelo menos uma instrução sendo uma instrução de expressão de tabela, que é uma instrução que produz dados organizados em uma malha de colunas e linhas em formato de tabela. As instruções de expressão de tabela da consulta produzem os resultados da consulta.

A sintaxe da instrução de expressão de tabela tem um fluxo de dados de tabela de um operador de consulta de tabela para outro, começando com a fonte de dados (por exemplo, uma tabela em um banco de dados ou um operador que produz dados) e, em seguida, passando por um conjunto de operadores de transformação de dados que são associados com o uso do delimitador de barra vertical (|).

Por exemplo, a consulta do Kusto a seguir tem uma única instrução, que é uma instrução de expressão de tabela. A instrução inicia com uma referência a uma tabela chamada StormEvents (o banco de dados que hospeda essa tabela é implícito aqui e é parte das informações de conexão). Os dados (linhas) para a tabela são então filtrados pelo valor da coluna StartTime e, em seguida, filtrados pelo valor da coluna State. A consulta retorna então a contagem de linhas "sobreviventes".

StormEvents 
| where StartTime >= datetime(2007-11-01) and StartTime < datetime(2007-12-01)
| where State == "FLORIDA"  
| count 

Execute esta consulta para ver o resultado:

Contagem
23

Comandos de controle

Ao contrário das consultas do Kusto, os comandos de controle são solicitações para o Kusto processar e potencialmente modificar os dados ou metadados. Por exemplo, o seguinte comando de controle cria uma tabela do Kusto com duas colunas, Level e Text:

.create table Logs (Level:string, Text:string)

Os comandos de controle têm a sua própria sintaxe que não faz parte da sintaxe de Linguagem de Consulta Kusto, embora as duas compartilhem muitos conceitos. Em particular, os comandos de controle são diferenciados das consultas pois eles têm como primeiro caractere no texto do comando o caractere de ponto (.) (que não pode iniciar uma consulta). Essa distinção impede muitos tipos de ataques de segurança, simplesmente porque ela impede a inserção de comandos de controle dentro de consultas.

Nem todos os comandos de controle modificam dados ou metadados. A grande classe de comandos que começam com .show é usada para exibir metadados ou dados. Por exemplo, o comando .show tables retorna uma lista de todas as tabelas no banco de dados atual.

Próximas etapas