Visão geral da língua de consulta de Kusto (KQL)

A Kusto Query Language é uma ferramenta poderosa para explorar os seus dados e descobrir padrões, identificar anomalias e outliers, criar modelação estatística, e muito mais. A consulta utiliza entidades de esquema que estão organizadas numa hierarquia semelhante à do SQL: bases de dados, tabelas e colunas.

O que é uma consulta kusto?

Uma consulta Kusto é um pedido só de leitura para processar dados e devolver resultados. O pedido é indicado em texto simples, utilizando um modelo de fluxo de dados que é fácil de ler, autor e automatizar. As consultas de Kusto são feitas de uma ou mais declarações de consulta.

O que é uma declaração de consulta?

Existem três tipos de declarações de consulta do utilizador:

Todas as declarações de consulta são separadas por um ; (ponto e vímico), e apenas afetam a consulta em questão.

Nota

Para obter informações sobre declarações de consulta de aplicações, consulte as declarações de consulta de aplicação.

O tipo de declaração de consulta mais comum é uma declaração de expressão tabular, o que significa que tanto a sua entrada como a sua saída consistem em tabelas ou conjuntos de dados tabulares. As declarações tabulares contêm zero ou mais operadores, cada um dos quais começa com uma entrada tabular e devolve uma saída tabular. Os operadores são sequenciados por um | tubo. Os dados fluem, ou são canalizados, de um operador para outro. Os dados são filtrados ou manipulados em cada passo e depois introduzidos no passo seguinte.

É como um funil, onde se começa com uma tabela de dados inteira. Cada vez que os dados passam por outro operador, é filtrado, reorganizado ou resumido. Uma vez que a tubagem de informação de um operador para outro é sequencial, a ordem do operador de consulta é importante e pode afetar tanto os resultados como o desempenho. No fim do funil, ficas com uma saída refinada.

Vamos ver uma consulta de exemplo.

StormEvents 
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"  
| count 

Nota

O KQL é sensível a casos para tudo – nomes de tabelas, nomes de colunas de mesa, operadores, funções, e assim por diante.

Esta consulta tem uma única declaração de expressão tabular. A declaração começa com uma referência a uma tabela chamada StormEvents e contém vários operadores, e countcada um separado por um tubo. As linhas de dados para a tabela de origem são filtradas pelo valor da coluna StartTime e depois filtradas pelo valor da coluna State . Na última linha, a consulta devolve uma tabela com uma única coluna e uma única linha contendo a contagem das restantes linhas.

Executar esta consulta para ver o resultado:

de palavras
28

Para experimentar mais algumas consultas kusto, consulte Tutorial: Use consultas kusto.

Comandos de controlo

Em contraste com as consultas de Kusto, os comandos de controlo são pedidos a Kusto para processar ou modificar dados ou metadados. Por exemplo, o seguinte comando de controlo cria uma nova tabela do Kusto com duas colunas, Level e Text:

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

Os comandos de controlo têm a sua própria sintaxe, a qual não faz parte da sintaxe da Linguagem de Consulta Kusto, embora as duas partilhem muitos conceitos. Em particular, os comandos de controlo distinguem-se das consultas por terem o caráter de ponto (.) como primeiro caráter no texto do comando (que não pode começar uma consulta). Esta distinção impede muitos tipos de ataques de segurança, simplesmente porque impede a incorporação de comandos de controlo dentro das consultas.

Nem todos os comandos de controlo modificam dados ou metadados. A grande classe de comandos que começam por .show são utilizados para apresentar metadados ou dados. Por exemplo, o comando .show tables devolve uma lista de todas as tabelas na base de dados atual.

Para obter mais informações sobre comandos de controlo, consulte a visão geral da Gestão (comandos de controlo).

Passos seguintes