Подключаемый модуль diffpatterns
Сравнивает два набора данных одной и той же структуры и находит шаблоны дискретных атрибутов (измерений), характеризующие различия между двумя наборами данных. Подключаемый модуль вызывается с evaluate
помощью оператора .
diffpatterns
был разработан для анализа сбоев (например, путем сравнения сбоев с неисправными за заданный период времени), но потенциально может находить различия между любыми двумя наборами данных одной и той же структуры.
Примечание
diffpatterns
предназначен для поиска важных шаблонов (которые захватывают части разности данных между наборами) и не предназначены для разностей по строкам.
Синтаксис
T | evaluate diffpatterns(
SplitColumn,
SplitValueA,
SplitValueB [,
WeightColumn,
Threshold,
MaxDimensions,
CustomWildcard,
...])
Дополнительные сведения о соглашениях о синтаксисе.
Параметры
Имя | Тип | Обязательно | Описание |
---|---|---|---|
SplitColumn | string |
✔️ | Имя столбца, указывающее алгоритму, как разделить запрос на наборы данных. В соответствии с указанными значениями аргументов SplitValueA и SplitValueB алгоритм разделяет запрос на два набора данных, "A" и "B", и анализирует различия между ними. Таким образом разделенный столбец должен содержать как минимум два различных значения. |
SplitValueA | string |
✔️ | Строковое представление одного из указанных значений в объекте SplitColumn . Все строки, имеющие это значение в splitColumn , считаются набором данных "A". |
SplitValueB | string |
✔️ | Строковое представление одного из указанных значений в объекте SplitColumn . Все строки, имеющие это значение в splitColumn , считаются набором данных "B". |
WeightColumn | string |
Столбец, используемый для рассмотрения каждой строки во входных данных в соответствии с заданным весом. Должно быть именем числового столбца, например int , long , real . По умолчанию вес каждой строки равен "1". Чтобы использовать значение по умолчанию, введите тильду: ~ . Как правило, при использовании столбца с весовым коэффициентом следует учитывать выборку, группирование или агрегирование данных, внедренных в каждой строке.Пример: T | extend splitColumn= iff(request_responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", sample_Count) |
|
Пороговое значение. | long |
Длинная в диапазоне от 0,015 до 1. Это значение задает минимальную разницу в соотношении шаблонов между двумя наборами. Значение по умолчанию — 0,05. Чтобы использовать значение по умолчанию, введите тильду: ~ .Пример: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", 0.04) |
|
MaxDimensions | int |
Задает максимальное число нескоррелых измерений на шаблон результата. Задав ограничение, вы уменьшаете среду выполнения запросов. Значение по умолчанию — не ограничено. Чтобы использовать значение по умолчанию, введите тильду: ~ .Пример: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", 3) |
|
CustomWildcard | string |
Задает подстановочный знак для определенного типа в таблице результатов, который укажет, что текущий шаблон не имеет ограничения по этому столбцу. Значение по умолчанию равно NULL, за исключением строковых столбцов, для которых по умолчанию используется пустая строка. Если значение по умолчанию является жизнеспособным значением в данных, следует использовать другое подстановочное значение. Например, * . Чтобы использовать значение по умолчанию, введите тильду: ~ .Пример: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", "~", int(-1), double(-1), long(0), datetime(1900-1-1)) |
Возвращаемое значение
diffpatterns
возвращает небольшой набор шаблонов, которые захватывают различные части данных в двух наборах (т. е. шаблон, захватывающий большой процент строк в первом наборе данных и низкий процент строк во втором наборе). В результатах каждый шаблон соответствует строке.
Результат diffpatterns
возвращает следующие столбцы:
SegmentId: удостоверение, назначенное шаблону в текущем запросе (примечание. Идентификаторы не гарантированы в повторяющихся запросах).
CountA: количество строк, захваченных шаблоном в наборе A (Set A является эквивалентом
where tostring(splitColumn) == SplitValueA
).CountB: количество строк, захваченных шаблоном в наборе B (Set B является эквивалентом
where tostring(splitColumn) == SplitValueB
).PercentA: процент строк в наборе A, захваченных шаблоном (100,0 * CountA / count(SetA)).
PercentB: процент строк в наборе B, захваченных шаблоном (100,0 * CountB / count(SetB)).
PercentDiffAB: абсолютная разница в процентах между A и B (|PercentA — PercentB|) — это main мера значимости шаблонов при описании различий между двумя наборами.
Остальные столбцы: являются исходной схемой входных данных и описывают шаблон. Каждая строка (шаблон) представляет собой пересечение значений столбцов, не являющихся подстановочными знаками (эквивалентное
where col1==val1 and col2==val2 and ... colN=valN
для каждого значения, не являющегося подстановочными знаками в строке).
Для каждого шаблона столбцы, которые не заданы в шаблоне (т. е. без ограничений по определенному значению), будут содержать значение с подстановочными знаками, которое по умолчанию равно NULL. См. раздел Аргументы ниже, как можно изменить подстановочные знаки вручную.
- Примечание. Шаблоны часто не отличаются друг от друга. Они могут перекрываться и обычно не охватывают все исходные строки. Некоторые строки могут не охватываться ни одним из шаблонов.
Совет
- Используйте расположение и проект во входном канале, чтобы сократить объем данных до интересующих вас данных.
- Если вы хотите узнать дополнительные сведения о конкретной строке, добавьте ее значения в фильтр
where
.
Пример
StormEvents
| where monthofyear(StartTime) == 5
| extend Damage = iff(DamageCrops + DamageProperty > 0 , 1 , 0)
| project State , EventType , Source , Damage, DamageCrops
| evaluate diffpatterns(Damage, "0", "1" )
Выходные данные
Идентификатор сегмента | Число A | Число B | Процент A | Процент B | PercentDiffAB | Состояние | EventType | Source | DamageCrops |
---|---|---|---|---|---|---|---|---|---|
0 | 2278 | 93 | 49,8 | 7.1 | 42,7 | Град | 0 | ||
1 | 779 | 512 | 17,03 | 39,08 | 22,05 | Шквалистый ветер | |||
2 | 1098 | 118 | 24,01 | 9,01 | 15 | Подготовленный корректировщик | 0 | ||
3 | 136 | 158 | 2,97 | 12,06 | 9,09 | Газета | |||
4 | 359 | 214 | 7,85 | 16,34 | 8,49 | Внезапное наводнение | |||
5 | 50 | 122 | 1,09 | 9,31 | 8,22 | Айова | |||
6 | 655 | 279 | 14,32 | 21,3 | 6,98 | Правоприменение | |||
7 | 150 | 117 | 3,28 | 8,93 | 5,65 | Наводнение | |||
8 | 362 | 176 | 7,91 | 13,44 | 5,52 | Специалист по управлению в чрезвычайных ситуациях |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по