Visão geral do KQL (Linguagem de Consulta Kusto)

Linguagem de Consulta Kusto é uma ferramenta poderosa para explorar seus dados e descobrir padrões, identificar anomalias e exceções, criar modelagem estatística e muito mais. A consulta usa entidades de esquema organizadas em uma hierarquia semelhante a SQLs: bancos de dados, tabelas e colunas.

O que é uma consulta Kusto?

Uma consulta 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 fácil de ler, criar e automatizar. As consultas Kusto são feitas de uma ou mais instruções de consulta.

O que é uma instrução de consulta?

Há três tipos de instruções de consulta de usuário:

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

Observação

Para obter informações sobre instruções de consulta de aplicativo, consulte Instruções de consulta de aplicativo.

O tipo de instrução de consulta mais comum é uma instrução de expressão de tabela, o que significa que a entrada e saída consistem em tabelas ou conjuntos de dados tabulares. As instruções tabulares contêm zero ou mais operadores, cada um deles começa com uma entrada tabular e retorna uma saída tabular. Os operadores são sequenciados por um | (pipe). Os dados fluem ou são canalizados de um operador para o outro. Os dados são filtrados ou manipulados em cada etapa e, em seguida, inseridos na próxima etapa.

É como um funil, em que você começa com uma tabela de dados inteira. Cada vez que os dados passam por outro operador, são filtrados, reorganizados ou resumidos. Como a tubulação de informações de um operador para outro é sequencial, a ordem do operador de consulta é importante e pode afetar os resultados e o desempenho. No final do funil, você obtém uma saída refinada.

Vamos examinar uma consulta de exemplo.

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

Observação

O KQL diferencia maiúsculas de minúsculas para tudo – nomes de tabela, nomes de coluna de tabela, operadores, funções e assim por diante.

Esta consulta tem uma única instrução de expressão de tabela. A instrução começa com uma referência a uma tabela chamada StormEvents e contém vários operadores, where e count, cada um separado por um pipe. As linhas de dados da tabela de origem são filtradas pelo valor da coluna StartTime e, em seguida, filtradas pelo valor da coluna State. Na última linha, a consulta retorna uma tabela com uma única coluna e uma única linha contendo a contagem das linhas restantes.

Contagem
28

Para experimentar mais algumas consultas Kusto, consulte Tutorial: Usar consultas Kusto.

Comandos de controle

Ao contrário das consultas Kusto, os comandos Control são solicitações ao Kusto para processar ou modificar 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.

Para obter mais informações sobre comandos de controle, consulte Visão geral do gerenciamento (comandos de controle).

Próximas etapas