Подключаемый модуль 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 Специалист по управлению в чрезвычайных ситуациях