(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

DP-900: como entender e usar consultas analíticas com KQL em Azure Data Explorer

João Barros 11 de September de 2026 5 min de leitura

Vou ensinar a competência: compreender e usar consultas analíticas com Kusto Query Language (KQL) em Azure Data Explorer — uma competência útil para o DP-900 porque demonstra como explorar grandes volumes de dados de telemetria e logs no Azure. KQL é amplamente usado em cenários de observabilidade, IoT e analytics, e mostrar que sabes construir consultas eficientes e interpretá-las é relevante para compreender cargas de trabalho analíticas no exame.

O que precisas de saber

Azure Data Explorer é um serviço optimizado para ingestão e consulta de grandes quantidades de dados de séries temporais e logs. A linguagem usada para consultar esses dados é a Kusto Query Language (KQL). KQL é declarativa e orientada a pipelines: transformas um conjunto de registos por uma sequência de operadores, separados por um pipe (|). Essa abordagem facilita a leitura e a composição de transformações complexas, porque cada operador recebe uma tabela e devolve outra.

Exemplo simples: imagina uma tabela chamada Telemetry com colunas Timestamp, DeviceId, Temperature. Para obter a temperatura média por hora por dispositivo:

Telemetry
| where Timestamp >= ago(24h)
| summarize AvgTemp = avg(Temperature) by bin(Timestamp, 1h), DeviceId
| order by Timestamp asc

O operador where filtra, summarize agrega, e bin agrupa por intervalos de tempo. Em ambientes reais, podes ter, por exemplo, 10 milhões de linhas por dia numa tabela de telemetria; por isso é crítico limitar o período e aplicar filtros cedo para reduzir a quantidade de dados processados.

Como funciona

KQL processa dados em fases: consulta a tabela, aplica filtros, projecta colunas, agrega e ordena. Os operadores mais importantes para DP-900 são:

  • where: filtra linhas (usar cedo para performance).
  • project: selecciona/renomeia colunas, reduz a largura das linhas.
  • summarize: agrega (avg, count, sum, min, max) e é essencial para métricas.
  • bin: agrupa timestamps em intervalos regulares (1m, 1h, 1d).
  • extend: cria colunas calculadas sem eliminar as existentes.
  • join: combina duas tabelas (semelhante a SQL JOIN), útil para juntar metadados.

Exemplo com colunas calculadas, join e ordenação:

let recent = Telemetry | where Timestamp >= ago(7d);
let devices = Devices | project DeviceId, Location, FirmwareVersion;
recent
| extend TempF = Temperature * 9/5 + 32
| where TempF > 80
| summarize Count = count(), AvgF = avg(TempF) by DeviceId, bin(Timestamp, 1d)
| join kind=leftouter devices on DeviceId
| order by AvgF desc

A instrução let facilita reutilizar subconsultas; o join adiciona metadados como localização. Em clusters bem configurados podes processar centenas de milhares de eventos por segundo; em situações de desenvolvimento é comum testar com janelas de uma hora ou um dia para iterar mais depressa.

Na prática

Passo a passo para construir uma consulta analítica útil em Azure Data Explorer:

  1. Identifica a tabela e as colunas necessárias (ex.: Telemetry, Timestamp, DeviceId, Temperature).
  2. Aplica um filtro temporal com where Timestamp >= ago(...) para reduzir o volume inicialmente — por exemplo, começa com ago(1d) ao testar e só alarga para 30 dias quando a lógica estiver correcta.
  3. Projecta apenas as colunas que precisas: | project Timestamp, DeviceId, Temperature para reduzir I/O e memória.
  4. Cria colunas calculadas com extend se precisares de transformar dados (ex.: converter unidades ou extrair partes de strings).
  5. Agrega com summarize usando by e, para séries temporais, bin para agrupar por intervalos regulares.
  6. Ordena e limita o resultado com order by e take se necessário para dashboards ou depuração.

Exemplo completo — detectar dispositivos com picos recentes de temperatura e listar os top 50:

Telemetry
| where Timestamp >= ago(1d)
| summarize MaxTemp = max(Temperature) by DeviceId
| where MaxTemp > 75
| order by MaxTemp desc
| take 50

Este padrão é útil para alimentar um dashboard que mostre os 50 dispositivos com maiores picos nas últimas 24 horas e integrar com alertas.

Erros comuns

  • Filtrar tarde demais: aplicar where só depois de operações pesadas (join/aggregate) aumenta custos e tempo. Filtra o mais cedo possível para reduzir os dados processados.
  • Usar summarize sem by correcto: esquecer bin em séries temporais produz agregações por timestamps distintos e resultados pouco úteis.
  • Não limitar dados para depuração: ao testar, usar take ou intervalos curtos para evitar ler dados em excesso e provocar consultas lentas ou dispendiosas.
  • Fazer joins sem chave apropriada ou sem limitar a tabela secundária: joins mal construídos podem multiplicar resultados e aumentar o custo.

Como praticar

Pratica no portal do Azure com um cluster Azure Data Explorer ou usa a experiência gratuita do Azure (ver políticas de custos). Cria tabelas de exemplo com 100k a 10M de registos para perceber o comportamento sob carga. Para preparação do DP-900, a Microsoft disponibiliza um Practice Assessment OFICIAL gratuito — usa-o para aferir conhecimentos sem recorrer a perguntas reais do exame. Consulta também a study guide oficial da Microsoft para DP-900, onde estão descritas as skills measured e links para laboratórios práticos e documentação do KQL.

Em resumo

  • KQL é orientada a pipelines: operadores encadeados transformam os dados passo a passo; cada operador produz uma tabela que alimenta o seguinte.
  • Filtra cedo com where, agrega com summarize e usa bin para séries temporais; estas práticas reduzem custos e aceleram consultas.
  • Evita operações dispendiosas sem filtros; testa com amostras curtas (take) e itera com janelas pequenas antes de escalar para 30 dias ou mais.
  • Pratica no Azure e usa o Practice Assessment oficial e a study guide da Microsoft — ambos gratuitos — para preparar o DP-900, e experimenta materiais de exemplo com dezenas de milhares a milhões de registos para ganhar confiança em cenários reais.