Descrição geral da Linguagem de Pesquisa Kusto (KQL)

A Linguagem de Pesquisa Kusto (KQL) é uma ferramenta avançada para explorar os seus dados e detetar padrões, identificar anomalias e valores atípicos, criar modelação estatística e muito mais. O KQL é uma linguagem simples, mas poderosa, para consultar dados estruturados, semiestruturados e não estruturados. A linguagem é expressiva, fácil de ler e compreender a intenção da consulta e otimizada para experiências de criação. Linguagem de Pesquisa Kusto é ideal para consultar telemetria, métricas e registos com suporte profundo para pesquisa e análise de texto, operadores e funções de série temporal, análise e agregação, pesquisas geoespaciais, de semelhanças de vetores e muitas outras construções de linguagem que fornecem a linguagem mais ideal para a análise de dados. A consulta utiliza entidades de esquema organizadas numa hierarquia semelhante a SQLs: bases de dados, tabelas e colunas.

Este artigo fornece uma explicação da linguagem de consulta e oferece exercícios práticos para começar a escrever consultas. Para aceder ao ambiente de consulta, utilize a IU web do Azure Data Explorer. Para saber como utilizar o KQL, veja Tutorial: Aprender operadores comuns.

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

O que é uma instrução de consulta?

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

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

Nota

Para obter informações sobre as instruções de consulta da aplicação, veja Declarações de consulta da aplicação.

O tipo mais comum de instrução de consulta é uma instrução de expressão tabular, o que significa que a entrada e a saída consistem em tabelas ou conjuntos de dados tabulares. As instruçõ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 | (pipe). Os dados fluem, ou são encaminhados, de um operador para o seguinte. Os dados são filtrados ou manipulados em cada passo e, em seguida, introduzidos no passo seguinte.

É como um funil, onde começa com uma tabela de dados inteira. Sempre que os dados passam por outro operador, são filtrados, reorganizados ou resumidos. Uma vez que o encaminhamento 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, fica com uma saída refinada.

Vejamos uma consulta de exemplo.

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

Nota

O KQL é sensível a maiúsculas e minúsculas para tudo – nomes de tabelas, nomes de colunas de tabela, operadores, funções, etc.

Esta consulta tem uma única instrução de expressão tabular. 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 Estado . Na última linha, a consulta devolve uma tabela com uma única coluna e uma única linha que contém a contagem das linhas restantes.

Para experimentar mais algumas consultas kusto, veja Tutorial: Escrever consultas Kusto.

Comandos de gestão

Ao contrário das consultas kusto, os comandos de Gestão são pedidos ao Kusto para processar ou modificar dados ou metadados. Por exemplo, o seguinte comando de gestão cria uma nova tabela kusto com duas colunas Level e Text:

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

Os comandos de gestão têm a sua própria sintaxe, que não faz parte da sintaxe Linguagem de Pesquisa Kusto, embora os dois partilhem muitos conceitos. Em particular, os comandos de gestão distinguem-se das consultas ao fazer com que o primeiro caráter no texto do comando seja o caráter de ponto (.) (que não consegue iniciar uma consulta). Esta distinção impede muitos tipos de ataques de segurança, simplesmente porque impede a incorporação de comandos de gestão dentro de consultas.

Nem todos os comandos de gestão 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 gestão, veja Descrição geral dos comandos de gestão.

KQL noutros serviços

A KQL é utilizada por muitos outros serviços Microsoft. Para obter informações específicas sobre a utilização de KQL nestes ambientes, veja as seguintes ligações: