Como filtrar dados com o operador where em KQL: exemplo
O operador where é a forma mais comum de filtrar dados em KQL: mantém apenas as linhas que cumprem uma condição e descarta as restantes. Como as tabelas de Real-Time Analytics crescem a cada segundo, um bom filtro é a diferença entre uma query rápida e uma que varre milhões de registos sem necessidade. A seguir vês exemplos práticos com números, texto e datas.
Pré-requisitos
- Uma base de dados KQL no Microsoft Fabric (Real-Time Intelligence) ou no Azure Data Explorer.
- Uma tabela com dados para consultar. Nos exemplos usamos uma tabela
Telemetriacom as colunasTimestamp,SensorId,RegiaoeTemperatura. - Noções básicas de como abrir um KQL Queryset e correr uma query.
Passo 1: Filtrar por um valor numérico
Comece pelo caso mais simples: mostrar apenas as leituras em que a temperatura ultrapassa os 30 graus. Escreva o nome da tabela, o pipe | e a condição a seguir ao where.
Telemetria
| where Temperatura > 30
O resultado tem exatamente as mesmas colunas da tabela original, mas só com as linhas onde a condição é verdadeira. Pode usar os operadores >, >=, <, <=, == (igual) e != (diferente).
Passo 2: Combinar várias condições
Para aplicar mais do que um critério ao mesmo tempo, junte as condições com and (todas têm de ser verdadeiras) ou or (basta uma). Assim consegue, por exemplo, isolar as temperaturas altas de uma só região.
Telemetria
| where Temperatura > 30 and Regiao == "Norte"
Pode encadear vários where seguidos — o efeito é o mesmo que usar and e muitas vezes fica mais legível.
Telemetria
| where Temperatura > 30
| where Regiao == "Norte"
Passo 3: Filtrar texto (has, contains e startswith)
Ao filtrar colunas de texto, a escolha do operador afeta o desempenho. O operador has procura palavras inteiras e usa o índice de termos, por isso é rápido. O contains procura qualquer pedaço de texto (uma subcadeia); é mais flexível mas mais lento, porque percorre todos os valores.
Telemetria
| where SensorId has "porta"
| where Regiao startswith "N"
Boa prática: prefira has sempre que procura uma palavra completa; reserve o contains para quando precisa mesmo de parte de uma palavra. Atenção às maiúsculas: == distingue maiúsculas de minúsculas, enquanto =~ e o próprio has ignoram-nas.
Passo 4: Filtrar por data e hora
Em Real-Time Analytics é muito comum querer apenas os dados mais recentes. A função ago() refere-se a um período a contar de agora — ago(1h) significa "há uma hora".
Telemetria
| where Timestamp > ago(1h)
Para um intervalo fixo, use between com duas datas. O operador .. separa o início do fim.
Telemetria
| where Timestamp between (datetime(2026-07-01) .. datetime(2026-07-05))
Passo 5: Filtrar cedo para ganhar velocidade
A ordem importa. Coloque o where o mais cedo possível na query, antes de join, summarize ou sort. Ao reduzir logo o número de linhas, todas as operações seguintes trabalham sobre menos dados e a query fica mais rápida.
Telemetria
| where Timestamp > ago(24h) and Temperatura > 30
| summarize Leituras = count() by Regiao
Verificar o resultado
Para confirmar que o filtro funcionou, conte as linhas antes e depois. Corra primeiro a tabela só com | count e depois com o seu where seguido de | count: o segundo número deve ser menor. Também pode usar | take 10 para ver uma amostra e confirmar que todas as linhas cumprem a condição que definiu.
Telemetria
| where Temperatura > 30
| count
Conclusão
Já sabe filtrar dados em KQL por números, texto e datas, e porque é que a ordem e a escolha entre has e contains fazem diferença. O passo seguinte natural é combinar o where com summarize para agregar os dados filtrados, ou com render para os visualizar num gráfico. Qual vai ser o primeiro filtro que precisa de aplicar aos seus dados de telemetria?