Compartilhar via


Visão geral da KQL (Linguagem de Consulta kusto)

Aplica-se a: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

A KQL (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. O KQL é uma linguagem simples, mas poderosa, para consultar dados estruturados, semiestruturados e não estruturados. O idioma é expressivo, fácil de ler e entender a intenção de consulta e otimizado para experiências de criação. A Linguagem de Consulta Kusto é ideal para consultar telemetria, métricas e logs com suporte profundo para pesquisa e análise de texto, operadores e funções de série temporal, análise e agregação, pesquisas de similaridade geoespacial, vetor e muitos outros constructos de linguagem que fornecem a linguagem mais ideal para análise de dados. A consulta usa entidades de esquema organizadas em uma hierarquia semelhante a SQLs: bancos de dados, tabelas e colunas.

Este artigo fornece uma explicação da linguagem de consulta e oferece exercícios práticos para que você comece a escrever consultas. Para acessar o ambiente de consulta, use o de interface do usuário da Web do Azure Data Explorer. Para saber como usar o KQL, consulte Tutorial: Aprender operadores comuns.

Este artigo fornece uma explicação da linguagem de consulta e oferece exercícios práticos para que você comece a escrever consultas. Para acessar o ambiente de consulta, use o de consulta KQL. Para saber como usar o KQL, consulte Tutorial: Aprender operadores comuns.

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 de usuário:

  • Uma instrução de expressão tabular
  • Uma instrução let
  • Uma instrução definida

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 instruções de consulta de aplicativo, consulte instruções de consulta de aplicativo.

O tipo mais comum de instrução de consulta é uma expressão tabular instrução, o que significa que sua 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, alimentados na etapa a seguir.

É como um funil, em que você começa com uma tabela de dados inteira. Cada vez que os dados passam por outro operador, eles são filtrados, reorganizados ou resumidos. Como a canalizaçã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ê fica com uma saída refinada.

Vamos examinar uma consulta de exemplo.

executar o de consulta

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

Nota

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.
As palavras-chave podem ser usadas como identificadores colocando-as entre colchetes e aspas ([' e '] ou [" e "]). Por exemplo, ['where']. Para obter mais informações, consulte regras de nomenclatura do identificador

Essa 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 filtradas pelo valor da coluna estado . Na última linha, a consulta retorna uma tabela com uma única coluna e uma única linha contendo a contagem das linhas restantes.

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

Comandos de gerenciamento

Ao contrário das consultas kusto, os comandos de Gerenciamento de são solicitações ao Kusto para processar ou modificar dados ou metadados. Por exemplo, o comando de gerenciamento a seguir cria uma nova tabela Kusto com duas colunas, Level e Text:

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

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

Nem todos os comandos de gerenciamento modificam dados ou metadados. A classe grande de comandos que começam com .show, são usadas 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 gerenciamento, consulte Visão geral dos comandos de Gerenciamento.

KQL em outros serviços

O KQL é usado por muitos outros serviços da Microsoft. Para obter informações específicas sobre o uso de KQL nesses ambientes, consulte os seguintes links: