Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
L’Explorateur d’ensembles de révision avancés (préversion) dans Microsoft Purview eDiscovery permet aux réviseurs d’exécuter l’analytique Big Data en temps réel sur le contenu de l’ensemble de révision à l’aide d’un sous-ensemble défini de Langage de requête Kusto (KQL). Avec l’Explorateur d’ensembles de révision avancés (préversion), vous pouvez interroger, filtrer et visualiser les données du jeu de révision directement dans le portail Microsoft Purview sans modifier le contenu sous-jacent. Les requêtes s’exécutent sur l’ensemble complet des éléments indexés et retournent des résultats tabulaires ou des visualisations de graphique.
Utilisez l’Explorateur d’ensembles de révision avancés (préversion) pour :
- Identifiez les principaux types d’éléments, les modèles de spot et recherchez les tendances dans l’ensemble de révision.
- Créez des requêtes puissantes avec un filtrage complexe, une extraction de texte basée sur des modèles et une analyse de format de données.
- Analysez et recherchez des informations clés spécifiques à votre cas ou organization.
- Visualisez les résultats des requêtes à l’aide de graphiques pour une compréhension complète des données d’ensemble de révision.
Conseil
Bien démarrer avec Microsoft Security Copilot pour explorer de nouvelles façons de travailler plus intelligemment et plus rapidement à l’aide de la puissance de l’IA. En savoir plus sur Microsoft Security Copilot dans Microsoft Purview.
Ouvrez l’Explorateur d’ensembles de révision avancés (préversion)
Pour ouvrir l’Explorateur d’ensembles de révision avancés (préversion), procédez comme suit :
- Accédez au portail Microsoft Purview et connectez-vous avec les informations d’identification d’un compte d’utilisateur affecté à des autorisations eDiscovery.
- Sélectionnez la solution eDiscovery carte, puis sélectionnez Cas dans la navigation de gauche.
- Sélectionnez un cas, puis sélectionnez l’onglet Vérifier les ensembles .
- Sélectionnez un ensemble de révisions, puis sélectionnez l’onglet Générateur de requêtes avancé (préversion).
À partir de là, vous pouvez écrire et exécuter des requêtes KQL directement sur les données du jeu de révision.
Conseil
Si vous préférez une approche visuelle sans code pour filtrer le contenu d’un jeu de révision, consultez Rechercher du contenu dans un jeu de révision avec le générateur de conditions de requête.
Fonctionnement de l’explorateur d’ensembles de révision avancés (préversion) dans un ensemble de révisions
Chaque requête s’exécute sur les données du jeu de révision complet et retourne :
- Liste tabulaire d’éléments correspondants, ou
- Visualisation de graphique, en fonction de la requête.
Les requêtes suivent la syntaxe de pipeline KQL standard, où chaque ligne s’appuie sur les résultats de l’étape précédente. Le portail ajoute automatiquement le nom de ReviewSetTable la table comme première ligne. Chaque ligne de requête suivante doit commencer par \|.
Par exemple :
ReviewSetTable
| where SubjectTitle has "Case"
| summarize count() by FileClass
Remarque
Toutes les requêtes de l’Explorateur d’ensembles de révision avancés (préversion) s’exécutent sur les éléments indexés du jeu de révision actuel. Vous n’avez pas besoin de spécifier un nom de table. Le jeu de révision fait office de source de données par défaut.
Meilleures pratiques
- Commencez par des
wherefiltres pour affiner les données avant d’utilisersummarizeourender. - Utilisez
takepour valider la logique de requête avant d’exécuter des agrégations complètes. - Évitez les modèles d’expression régulière trop larges sur les grands ensembles de révision.
- Utilisez
where isnotempty(ColumnName)pour exclure les éléments avec des valeurs vides pour une propriété, ce qui permet d’éviter des lignes vides inattendues dans vos résultats.
Autres considérations
L’Explorateur d’ensembles de révision avancés (préversion) ne prend pas en charge tous les opérateurs et propriétés Kusto. Gardez les considérations suivantes à l’esprit lorsque vous créez des requêtes :
- Les requêtes sont en lecture seule et ne modifient pas le contenu du jeu de révision. Pour plus d’informations sur l’utilisation des jeux de révision, consultez Gérer les jeux de révision dans eDiscovery.
- Les résultats reflètent l’état indexé actuel du jeu de révision. Si vous ajoutez des données supplémentaires au jeu de révision, la requête peut retourner des résultats différents.
- Tous les types de fichiers ne peuvent pas être interrogés. Pour plus d’informations, consultez Types de fichiers pris en charge dans eDiscovery.
- Si la requête retourne plus de 10 000 résultats, elle retourne uniquement les 10 000 premiers résultats. Modifiez la requête pour affiner les résultats.
Pour connaître la syntaxe et les références Kusto, consultez les articles suivants :
- Conventions de syntaxe pour la documentation de référence
- Bonnes pratiques pour les requêtes Langage de requête Kusto
Opérateurs de base pris en charge
Conseil
Pour obtenir la liste complète des propriétés disponibles que vous pouvez utiliser dans les requêtes, consultez Champs de métadonnées de document dans eDiscovery.
Où
Utilisez l’opérateur where pour filtrer les éléments en fonction de métadonnées telles que l’objet, les mots clés, la classe d’élément, les dates ou les participants.
L’exemple suivant filtre le jeu de révision pour renvoyer uniquement les éléments dont l’objet contient le texte « Jour ».
ReviewSetTable
| where SubjectTitle has "Day"
Cette requête filtre le jeu de révision pour inclure tous les éléments liés au calendrier dont ItemClass commence par , qui couvre les rendez-vous standard et les classes étendues IPM.Appointmentcomme IPM.AppointmentSnapshot.SkypeTeams.Call.
ReviewSetTable
| where ItemClass startswith "IPM.Appointment"
Project
Utilisez project pour renvoyer uniquement les propriétés qui vous intéressent. Par exemple, la requête suivante effectue deux actions :
-
Filtre les éléments par texte d’objet : la
where SubjectTitle has "Day"clause limite les résultats aux seuls éléments dont SubjectTitle contient le mot « Day ». -
Projette une seule colonne : la
project SubjectTitleclause retourne alors uniquement la propriété SubjectTitle pour ces éléments filtrés, en supprimant toutes les autres colonnes de la sortie.
ReviewSetTable
| where SubjectTitle has "Day"
| project SubjectTitle
Étendre
L’opérateur extend ajoute une ou plusieurs colonnes calculées aux résultats de votre requête en créant de nouvelles valeurs dérivées de champs existants sans modifier les données sous-jacentes.
L’exemple suivant classifie les éléments d’ensemble de révision en quatre catégories de taille : Petite (<1 Mo),Moyenne (1-5 Mo),Moyenne-Grande (5-10 Mo) et Grande (>10 Mo) en créant une colonne SizeCategory à l’aide de la case() fonction , puis agrège le nombre d’éléments dans chaque catégorie à l’aide summarizede . Il permet aux enquêteurs de comprendre rapidement la distribution des tailles de fichiers dans l’ensemble de révision pour l’évaluation des risques ou la hiérarchisation.
ReviewSetTable
| extend SizeCategory = case(Size > 10485760, "Large (>10MB)", Size >= 5242880 and Size <= 10485760, "Medium-Large (5–10MB)", Size >= 1048576 and Size < 5242880, "Medium (1–5MB)", "Small (<1MB)")
| summarize count() by SizeCategory
Résumer
L’opérateur summarize agrège les données en appliquant des fonctions telles que count(), sum()ou avg(), et regroupe les résultats en fonction des colonnes spécifiées.
L’exemple suivant compte les éléments regroupés par SubjectTitle pour les éléments contenant le mot « Jour ».
ReviewSetTable
| where SubjectTitle has "Day"
| summarize count() by SubjectTitle
Graphique à barres de rendu, graphique en colonnes de rendu, graphique à secteurs de rendu
L’opérateur render barchart prend les résultats tabulaires de votre requête et les affiche sous forme de graphique à barres. Cela facilite la visualisation de la distribution ou de la comparaison des valeurs agrégées.
L’exemple suivant montre comment afficher les nombres de titres de l’objet sous forme de graphique à barres.
ReviewSetTable
| where SubjectTitle has "Day"
| summarize count() by SubjectTitle
| render barchart
Take (limite)
L’opérateur take limite la sortie de la requête à un nombre spécifié de lignes. Elle retourne uniquement les n premiers résultats du jeu de données. L’opérateur limit est un synonyme de take et peut être utilisé indifféremment.
L’exemple suivant retourne uniquement les 10 premiers éléments correspondants, ce qui vous permet de valider la logique de requête ou le contenu case activée spot avant d’exécuter une requête complète. Cette approche est utile lorsque vous traitez des ensembles de révision volumineux ou des filtres complexes, où le calcul et le chargement des résultats peuvent prendre plus de temps sans take limiter la sortie.
ReviewSetTable
| where SubjectTitle has "day"
| project SubjectTitle, SenderDomain, Custodian, Size
| take 10
Sort
L’opérateur sort classe les résultats de la requête en fonction d’une ou plusieurs colonnes spécifiées dans l’ordre croissant ou décroissant.
L’exemple de requête suivant calcule le nombre total d’éléments pour chaque NativeFileExtension dans le jeu de révision à l’aide summarize count()de . Ensuite, il trie ces groupes d’extensions dans l’ordre décroissant du nombre d’éléments afin que vous puissiez voir les types de fichiers les plus répandus.
ReviewSetTable
| summarize ItemCount = count() by NativeFileExtension
| sort by ItemCount desc
Distinct
L’opérateur distinct retourne des valeurs uniques pour les colonnes spécifiées en supprimant les lignes en double des résultats de la requête.
L’exemple suivant utilise distinct pour supprimer les doublons afin que vous voyiez uniquement des consignataires uniques, puis utilise sort by Custodian asc pour les classer par ordre alphabétique, ce qui facilite l’analyse ou l’exportation pour la création de rapports.
ReviewSetTable
| distinct Custodian
| sort by Custodian asc
Count
L’opérateur count retourne le nombre total de lignes dans le jeu de résultats de la requête, ce qui vous permet de voir rapidement le nombre d’éléments dans le jeu.
L’exemple suivant compte le nombre de titres d’objet uniques qui contiennent le mot « Jour ».
ReviewSetTable
| where SubjectTitle has "Day"
| summarize by SubjectTitle
| count
Haut
L’opérateur top retourne les n premières lignes des résultats de la requête, classées par une ou plusieurs colonnes spécifiées. Utilisez-le pour obtenir les valeurs les plus élevées ou les plus basses en fonction de vos critères de tri.
L’exemple suivant obtient les cinq principaux éléments les plus volumineux de votre ensemble de révisions.
ReviewSetTable
| top 5 by Size desc
Bin
La bin() fonction arrondit une valeur datetime ou numérique au multiple le plus proche d’une taille de compartiment spécifiée. Utilisez cette fonction pour regrouper les données dans des intervalles de temps ou des plages numériques, telles que des compartiments horaires ou des plages de tailles.
L’exemple suivant regroupe les éléments de l’ensemble de révision dans des compartiments de taille de 1 Mo à l’aide bin(Size, 1048576)de , compte le nombre d’éléments qui tombent dans chaque compartiment avec summarize count(), puis trie les compartiments dans l’ordre croissant afin que vous puissiez voir la distribution des tailles de fichiers de la plus petite à la plus grande.
ReviewSetTable
| summarize ItemCount = count() by bin(Size, 1048576)
| sort by bin(Size, 1048576) asc
Scénarios courants
Les scénarios suivants montrent comment les requêtes Kusto dans l’Explorateur d’ensembles de révision avancés (préversion) peuvent vous aider à analyser et à mieux comprendre les données de votre jeu de révision.
Scénario 1 : Communications entre deux utilisateurs
Recherchez les éléments échangés exclusivement entre deux utilisateurs spécifiques - John et David - sans aucun autre participant. Cette requête isole leurs communications directes un-à-un et n’affiche que trois propriétés : titre de l’objet, expéditeur et destinataires.
ReviewSetTable
| where isnotempty(Participants)
| extend ParticipantEmails = extract_all(@"\<(\[^\>\]+)\>", tostring(Participants))
| extend ParticipantCount = array_length(ParticipantEmails)
| where ParticipantCount == 2
| where ParticipantEmails has "John@contoso.com" and ParticipantEmails has "David@contoso.com"
| project SubjectTitle, SenderAuthor, Recipients
Scénario 2 : e-mails envoyés en externe
Recherchez tous les éléments du jeu de révision qui incluent au moins un destinataire externe (en dehors de votre organization contoso.com) et répertoriez ces adresses e-mail externes pour chaque élément.
ReviewSetTable
| where isnotempty(Recipients)
| extend Emails = extract_all(@"\<(\[^\>\]+)\>", tostring(Recipients))
| mv-expand Email = Emails
| extend Email = tostring(Email)
| where Email !contains "@contoso.com"
| summarize ExternalRecipients = make_set(Email) by ImmutableId, SubjectTitle
Scénario 3 : Identifier les modèles de date et d’heure dans l’ensemble de révision
La visualisation des données au fil du temps permet aux enquêteurs d’identifier des pics ou des anomalies dans la communication ou la création de documents, comme une augmentation soudaine des e-mails pouvant être corrélés à un incident connu. Les vues trimestrielles s’alignent sur les cycles d’activité, ce qui facilite la corrélation des résultats avec les périodes de rapports financiers, les audits internes ou les changements de stratégie.
L’exemple suivant analyse la façon dont les éléments d’ensemble de révision sont distribués au fil du temps en regroupant les éléments par année et par trimestre et en visualisant les résultats sous forme d’histogramme. Il filtre les éléments par plage de dates, extrait l’année et le trimestre du champ Date de chaque élément, compte les éléments dans chaque combinaison année-trimestre, crée une étiquette lisible (par exemple, T2 2024) et affiche les résultats sous forme d’histogramme.
ReviewSetTable
| where Date > datetime(2015-01-01) and Date < datetime(2025-08-31)
| extend Year = datetime_part("year", Date), Quarter = datetime_part("quarter", Date)
| summarize EventCount = count() by Year, Quarter
| sort by Year asc, Quarter asc
| extend QuarterLabel = strcat("Q", tostring(Quarter), " ", tostring(Year))
| project QuarterLabel, EventCount
| render columnchart
Scénario 4 : Visualiser les types de messages Microsoft Teams dans l’ensemble de révision
L’exemple suivant catégorise et visualise les types de messages Microsoft Teams dans l’ensemble de révision par classe d’élément, ce qui vous aide à comprendre la distribution des différents formats de message.
ReviewSetTable
| where ItemClass startswith "IPM.SkypeTeams.Message."
| project SubjectTitle, Date, SenderAuthor, FileClass, ItemClass, InternetMessageId
| summarize ItemCount = count() by ItemClass
| sort by ItemCount desc
| render piechart
Utiliser l’expression régulière dans l’Explorateur d’ensembles de révision avancés (préversion)
L’Explorateur d’ensembles de révision avancés (préversion) prend en charge les expressions régulières (expression régulière) pour une correspondance de modèle puissante dans les champs de texte. La prise en charge des expressions régulières vous permet de rechercher des séquences complexes de caractères, telles que des combinaisons alphanumériques, des caractères spéciaux ou des modèles structurés, au-delà de la simple correspondance mot clé. Utilisez l’expression régulière pour :
- Identifiez les éléments avec des formats spécifiques, tels que des ID, des codes ou des jetons structurés.
- Détectez les modèles que les opérateurs standard aiment
hasoustartswithne peuvent pas capturer. - Effectuez un filtrage avancé pour les enquêtes de conformité ou d’investigation.
Conseils pour l’écriture d’expressions régulières dans KQL
- Les barres obliques inverses d’échappement correctement (
\\) si nécessaire. - Utilisez des ancres (
^pour le début,$pour la fin) pour le positionnement exact. - Testez les modèles de façon incrémentielle pour éviter les correspondances trop larges.
- Combinez avec d’autres opérateurs (par exemple,
and,or) pour des requêtes précises. - Référence : Syntaxe d’expression régulière.
Syntaxe
Utilisez l’opérateur matches regex dans votre where clause :
where <PropertyName> matches regex "<pattern>"
Exemple : Mettre en correspondance un modèle complexe dans mots clés
ReviewSetTable
| where Keywords matches regex "\\w{10}\\d{10}\\W{10}"
| project SubjectTitle, CompoundPath, Date, SenderAuthor, FileClass, ItemClass, InternetMessageId
Filtre les éléments dans lesquels la propriété Keywords contient :
- 10 caractères
\w() - suivi de 10 chiffres (
\d) - suivi de 10 caractères sans mot (
\W)
- 10 caractères
Retourne les champs de métadonnées de clé comme spécifié pour révision.
Corriger les erreurs courantes de syntaxe KQL
Lorsque vous créez des requêtes dans l’Explorateur d’ensembles de révision avancés (préversion), vous pouvez rencontrer des erreurs de syntaxe.
Le tableau suivant répertorie les erreurs courantes et la façon de les corriger :
| Error | Cause | Corriger |
|---|---|---|
sort l’opérateur nécessite un nom de colonne |
Utilisation sort sans spécifier par quoi trier. |
Ajoutez un nom de colonne après sort by. Par exemple : sort by Date desc. |
Attendu ) ou , |
Parenthèse fermante manquante ou arguments de fonction incorrects. | Vérifiez que toutes les parenthèses ouvrantes ont des parenthèses fermante correspondantes et que les arguments de fonction sont séparés par des virgules. |
| Fonction inconnue | Utilisation d’un nom de fonction qui n’est pas pris en charge ou qui est mal orthographié. | Vérifiez le nom de la fonction par rapport à la documentation KQL. Exemples courants : count(), tostring()et datetime(). |
Jeton attendu : \ | |
Il manque l’opérateur de canal au début d’une ligne de requête. | Vérifiez que chaque ligne après ReviewSetTable commence \ | par . |
| Colonne introuvable | Référencement d’un nom de propriété qui n’existe pas dans le schéma du jeu de révision. | Vérifiez les noms de colonnes disponibles dans votre jeu de révision. Les noms des propriétés sont sensibles à la casse. |
summarize nécessite une by clause |
Utilisation summarize avec une agrégation, mais aucune colonne de regroupement. |
Ajoutez une by clause avec une ou plusieurs colonnes. Par exemple : summarize count() by FileClass. |
| Fin inattendue de la requête | La requête est incomplète ou possède un canal de fin sans opérateur. | Supprimez toute fin \ | à la fin de la requête ou ajoutez l’opérateur prévu après celle-ci. |
Remarque
Certains jeux de révision plus anciens peuvent ne pas prendre en charge certaines propriétés KQL si ces propriétés n’étaient pas disponibles lorsque le jeu de révision a été créé et que les données ont été générées. L’interrogation d’une propriété non prise en charge dans un jeu de révision plus ancien génère une erreur de colonne introuvable. Pour résoudre cette erreur, créez un jeu de révision et utilisez le processus Ajouter pour réviser le jeu pour régénérer les données avec les dernières propriétés prises en charge.