LE MÉDIA DE L’IA QUI SERT VRAIMENT.Édition française · Comprendre & passer à l’action
Microsoft

Interroger Azure Data Explorer (Kusto) en KQL

azure-kusto

En bref

On recourt à cette skill pour l’interrogation d’Azure Data Explorer (Kusto/ADX) en KQL : écrire et exécuter des requêtes KQL pour de l’analytique de journaux, de la télémétrie, des séries temporelles, de la télémétrie IoT ou une détection d’anomalies. Ce n’est pas la composition d’IRQL pour une chasse de sécurité, qui relève d’une skill sœur. Elle exécute des requêtes KQL sur Azure Data Explorer (ADX) : exploration de schéma, listage des clusters et des bases, agrégations, séries temporelles et détection d’anomalies. Si l’emplacement d’une table est inconnu, on découvre d’abord les ressources candidates. Ce n’est pas la composition de pipelines IRQL (`Get_*`, `Extract_*`, `Enrich_*`), qui relève de la skill sœur `azure-kusto-irql`. Si les outils MCP Kusto échouent ou sont indisponibles, on se rabat sur Azure CLI.

Ce que ça fait

  • Écrire et exécuter des requêtes KQL pour de l’analytique de journaux, de la télémétrie, des séries temporelles, de la télémétrie IoT ou une détection d’anomalies.
  • Ce n’est pas la composition d’IRQL pour une chasse de sécurité, qui relève d’une skill sœur.

Pour qui, et un exemple

Les analystes et les équipes observabilité qui interroge un cluster ADX ou une base Kusto, pour des journaux, de la télémétrie ou des séries temporelles.

Exemple de demande : « Écris une requête KQL sur ce cluster ADX pour repérer une anomalie dans la télémétrie IoT des sept derniers jours. »

À ouvrir pour une requête KQL sur Azure Data Explorer, des journaux, de la télémétrie ou une série temporelle. Exemple rédigé par iadujour.fr à partir du SKILL.md, non testé.

Installer

npx skills add microsoft/skills (sélection de la skill dans l’assistant, README).

npx skills add microsoft/skills

Fonctionne avec

  • GitHub Copilot
  • Copilot CLI

Source : README : exemples de « Copilot CLI » et « GitHub Copilot in VS Code » ; l’installation `npx skills add` envoie les fichiers vers le répertoire de l’agent choisi, sans liste exhaustive.

Niveau : Débutant

S’utilise en langage naturel ; aucun prérequis de code n’est exigé par la description, au-delà du produit visé.

À savoir

Dépôt officiel Microsoft ; le README le présente comme un travail en cours (skills et tests encore enrichis).

Extrait du SKILL.md

La description d’origine, celle que l’agent lit pour décider de charger la skill (en anglais) :

Query and analyze data in Azure Data Explorer (Kusto/ADX) using KQL for log analytics, telemetry, and time series analysis. WHEN: KQL queries, Kusto database queries, Azure Data Explorer, ADX clusters, log analytics, time series data, IoT telemetry, anomaly detection.

Citée depuis le SKILL.md au commit 07ade63 .

Le SKILL.md compte 206 lignes et 20 sections principales :

  • Overview
  • Core Workflow
  • Query Patterns
  • Pattern 1: Basic Data Retrieval
  • Pattern 2: Aggregation Analysis
  • Pattern 3: Time Series Analytics
  • Pattern 4: Join and Correlation
  • Pattern 5: Schema Discovery
  • Pattern 6: Batch Search Across Candidate Sources
  • Key Data Fields
  • Result Format
  • KQL Best Practices
  • Best Practices
  • MCP Tools Used
  • Fallback Strategy: Azure CLI Commands
  • CLI Command Reference
  • KQL Query via Azure CLI
  • When to Fallback
  • Common Issues
  • Use Cases

Licence : MIT

Vérifiée le 10 novembre 2026 sur : fichier de licence d’un dossier parent (.github/plugins/azure-skills/LICENSE) . Licence déclarée dans le frontmatter : « MIT ». Titulaire : Copyright 2025 (c) Microsoft Corporation..

La licence autorise la reprise : le texte intégral du SKILL.md est reproduit ci-dessous, sans modification, avec sa mention de licence.

Texte intégral du SKILL.md

Reproduit sans modification depuis microsoft/skills (commit 07ade63) , © Microsoft, sous licence MIT (fichier de licence d’origine ).

Afficher le SKILL.md original (206 lignes, en anglais)
---
name: azure-kusto
description: "Query and analyze data in Azure Data Explorer (Kusto/ADX) using KQL for log analytics, telemetry, and time series analysis. WHEN: KQL queries, Kusto database queries, Azure Data Explorer, ADX clusters, log analytics, time series data, IoT telemetry, anomaly detection."
license: MIT
metadata:
  author: Microsoft
  version: "1.2.2"
---

# Azure Data Explorer (Kusto) Query & Analytics

Execute KQL queries and manage Azure Data Explorer resources for fast, scalable big data analytics on log, telemetry, and time series data.

## Overview

This skill enables querying and managing Azure Data Explorer (Kusto), a fast and highly scalable data exploration service optimized for log and telemetry data. Azure Data Explorer provides sub-second query performance on billions of records using the Kusto Query Language (KQL).

Key capabilities:
- **Query Execution**: Run KQL queries against massive datasets
- **Schema Exploration**: Discover tables, columns, and data types
- **Resource Management**: List clusters and databases
- **Analytics**: Aggregations, time series, anomaly detection, machine learning

## Core Workflow

1. **Discover Resources**: List available clusters and databases in subscription. If the target table's location is unknown and multiple candidate clusters, databases, or Log Analytics workspaces exist, batch the search (see Pattern 6) and only report "not found" after all candidates are checked.
2. **Explore Schema**: Retrieve table structures to understand data model
3. **Query Data**: Execute KQL queries for analysis, filtering, aggregation
4. **Analyze Results**: Process query output for insights and reporting

## Query Patterns

### Pattern 1: Basic Data Retrieval
Fetch recent records from a table with simple filtering.

**Example KQL**:
```kql
Events
| where Timestamp > ago(1h)
| take 100
```

**Use for**: Quick data inspection, recent event retrieval

### Pattern 2: Aggregation Analysis
Summarize data by dimensions for insights and reporting.

**Example KQL**:
```kql
Events
| summarize count() by EventType, bin(Timestamp, 1h)
| order by count_ desc
```

**Use for**: Event counting, distribution analysis, top-N queries

### Pattern 3: Time Series Analytics
Analyze data over time windows for trends and patterns.

**Example KQL**:
```kql
Telemetry
| where Timestamp > ago(24h)
| summarize avg(ResponseTime), percentiles(ResponseTime, 50, 95, 99) by bin(Timestamp, 5m)
| render timechart
```

**Use for**: Performance monitoring, trend analysis, anomaly detection

### Pattern 4: Join and Correlation
Combine multiple tables for cross-dataset analysis.

**Example KQL**:
```kql
Events
| where EventType == "Error"
| join kind=inner (
    Logs
    | where Severity == "Critical"
) on CorrelationId
| project Timestamp, EventType, LogMessage, Severity
```

**Use for**: Root cause analysis, correlated event tracking

### Pattern 5: Schema Discovery
Explore table structure before querying.

**Tools**: `kusto_table_schema_get`

**Use for**: Understanding data model, query planning

### Pattern 6: Batch Search Across Candidate Sources
When a table's location is unknown and there are several candidate clusters, databases, or workspaces, batch read-only metadata discovery instead of querying candidates one at a time. List tables in each candidate database or workspace and match the exact table name before querying data.

After confirming which sources contain the table, query those sources together when needed:
```kql
union workspace('ws1').Requests, workspace('ws2').Requests
| take 1
```

**Use for**: Locating a table among many candidate resources without confusing an empty result with a missing table

## Key Data Fields

When executing queries, common field patterns:
- **Timestamp**: Time of event (datetime) - use `ago()`, `between()`, `bin()` for time filtering
- **EventType/Category**: Classification field for grouping
- **CorrelationId/SessionId**: For tracing related events
- **Severity/Level**: For filtering by importance
- **Dimensions**: Custom properties for grouping and filtering

## Result Format

Query results include:
- **Columns**: Field names and data types
- **Rows**: Data records matching query
- **Statistics**: Row count, execution time, resource utilization
- **Visualization**: Chart rendering hints (timechart, barchart, etc.)

## KQL Best Practices

**🔵 Query Patterns:**
- Use `summarize` for aggregations instead of `count()` alone
- Use `bin()` for time bucketing in time series
- Use `project` to select only needed columns
- Use `extend` to add calculated fields

**🟡 Common Functions:**
- `ago(timespan)`: Relative time (ago(1h), ago(7d))
- `between(start .. end)`: Range filtering
- `startswith()`, `contains()`, `matches regex`: String filtering
- `parse`, `extract`: Extract values from strings
- `percentiles()`, `avg()`, `sum()`, `max()`, `min()`: Aggregations

## Best Practices

- Filter early with time range filters to optimize query performance and use indexed columns first
- Use `take` or `limit` for exploratory queries to avoid large result sets
- Leverage `summarize` for aggregations instead of client-side processing
- Store frequently-used queries as functions in the database
- Use materialized views for repeated aggregations
- Monitor query performance and resource consumption
- Apply data retention policies to manage storage costs
- Use streaming ingestion for real-time analytics (< 1 second latency)
- Integrate with Azure Monitor for operational insights

## MCP Tools Used

| Tool | Purpose |
|------|---------|
| `kusto_cluster_list` | List all Azure Data Explorer clusters in a subscription |
| `kusto_database_list` | List all databases in a specific Kusto cluster |
| `kusto_query` | Execute KQL queries against a Kusto database |
| `kusto_table_schema_get` | Retrieve schema information for a specific table |

**Required Parameters**:
- `subscription`: Azure subscription ID or display name
- `cluster`: Kusto cluster name (e.g., "mycluster")
- `database`: Database name
- `query`: KQL query string (for query operations)
- `table`: Table name (for schema operations)

**Optional Parameters**:
- `resource-group`: Resource group name (for listing operations)
- `tenant`: Azure AD tenant ID

## Fallback Strategy: Azure CLI Commands

If Azure MCP Kusto tools fail, timeout, or are unavailable, use Azure CLI commands as fallback.

### CLI Command Reference

| Operation | Azure CLI Command |
|-----------|-------------------|
| List clusters | `az kusto cluster list --resource-group <rg-name>` |
| List databases | `az kusto database list --cluster-name <cluster> --resource-group <rg-name>` |
| Show cluster | `az kusto cluster show --name <cluster> --resource-group <rg-name>` |
| Show database | `az kusto database show --cluster-name <cluster> --database-name <db> --resource-group <rg-name>` |

### KQL Query via Azure CLI

For queries, use the Kusto REST API or direct cluster URL:
```bash
az rest --method post \
  --url "https://<cluster>.<region>.kusto.windows.net/v1/rest/query" \
  --body "{ \"db\": \"<database>\", \"csl\": \"<kql-query>\" }"
```

### When to Fallback

Switch to Azure CLI when:
- MCP tool returns timeout error (queries > 60 seconds)
- MCP tool returns "service unavailable" or connection errors
- Authentication failures with MCP tools
- Empty response when database is known to have data

## Common Issues

- **Access Denied**: Verify database permissions (Viewer role minimum for queries)
- **Query Timeout**: Optimize query with time filters, reduce result set, or increase timeout
- **Syntax Error**: Validate KQL syntax - common issues: missing pipes, incorrect operators
- **Empty Results**: Check time range filters (may be too restrictive), verify table name
- **Table Location Unknown**: Use Pattern 6 to batch-search all candidate sources before concluding the data does not exist
- **Cluster Not Found**: Check cluster name format (exclude ".kusto.windows.net" suffix)
- **High CPU Usage**: Query too broad - add filters, reduce time range, limit aggregations
- **Ingestion Lag**: Streaming data may have 1-30 second delay depending on ingestion method

## Use Cases

- **Log Analytics**: Application logs, system logs, audit logs
- **IoT Analytics**: Sensor data, device telemetry, real-time monitoring
- **Security Analytics**: SIEM data, threat detection, security event correlation
- **APM**: Application performance metrics, user behavior, error tracking
- **Business Intelligence**: Clickstream analysis, user analytics, operational KPIs
Source. Fiche rédigée par iadujour.fr à partir de : Frontmatter, sections et corps du SKILL.md, README du dépôt. Consultée le 10 novembre 2026. Dépôt : microsoft/skills .

Dans l’annuaire

Cas d’usage et guides qui partagent un thème, un métier ou un outil avec cette skill.

DANS L’ANNUAIRE

Cas d’usage liés.

Des fiches de l’annuaire qui partagent au moins deux mots-clés précis avec cette skill.

MÊME ÉDITEUR

Autres skills Microsoft : Données et bases de données

Toute la catégorie
MicrosoftDonnées et bases de données

Choisir et utiliser les services de stockage Azure

azure-storage

Porte sur les services Azure Storage : Blob, File Shares, Queue, Table et Data Lake.

Outils : GitHub Copilot, Copilot CLINiveau : Intermédiairemàj 05/10/2026
MicrosoftDonnées et bases de données

Construire et interroger des graphes Kusto en langage naturel

azure-kusto-graph

Permet de construire et d’interroger des graphes Kusto à partir d’une demande en langage naturel : graphes transitoires (make-graph), modèles et instantanés persistants, correspondance de motifs (graph-match), plus courts chemins, composantes connexes et export graphe-vers-table.

Outils : GitHub Copilot, Copilot CLINiveau : Intermédiairemàj 10/08/2026
MicrosoftDonnées et bases de données

Visualiser des résultats IRQL ou KQL sous forme de graphe

azure-kusto-irql-graph

Applique des fonctions graphe IRQL à des résultats de requêtes KQL ou IRQL, pour une visualisation dans Kusto Explorer : mappings Lift_To_Graph, vues Graph_Render_View, pliage par propriété, et enrichissements Extract_Node_* / Enrich_Graph_*.

Outils : GitHub Copilot, Copilot CLINiveau : Intermédiairemàj 10/08/2026
ÉCHANGES

Commentaires.

Un retour d’expérience, une question, une précision sur cette skill ? Les commentaires sont relus avant publication.

Commentaires publiés

Chargement des commentaires…

    Laisser un commentaire

    Charte de modération. Chaque commentaire est relu avant publication. Sont refusés : l’incitation à la haine, les propos injurieux ou discriminatoires, la publicité, le spam et les liens promotionnels, le hors-sujet et les données personnelles d’autrui.