Поделиться через


Подключаемый модуль diffpatterns

Область применения: ✅Microsoft Fabric✅Azure Data Explorer

Сравнивает два набора данных одной структуры и находит шаблоны дискретных атрибутов (измерений), характеризующие различия между двумя наборами данных. Подключаемый модуль вызывается оператором evaluate .

diffpatterns был разработан для анализа сбоев (например, путем сравнения сбоев с неработоспособностями в заданном временном интервале), но потенциально может найти различия между двумя наборами данных одной структуры.

Примечание.

diffpatterns стремится найти существенные шаблоны (которые фиксируют части разницы данных между наборами) и не предназначены для различий между строками.

Синтаксис

T | evaluate diffpatterns(SplitColumn SplitValueA SplitValueB [, WeightColumn,, Threshold, MaxDimensions,CustomWildcard, ...], )

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
SplitColumn string ✔️ Имя столбца, которое сообщает алгоритму, как разделить запрос на наборы данных. В соответствии с указанными значениями для аргументов SplitValueA и SplitValueB алгоритм разбивает запрос на два набора данных , "A" и "B" и анализирует различия между ними. Таким образом разделенный столбец должен содержать как минимум два различных значения.
SplitValueA string ✔️ Строковое представление одного из значений в указанном SplitColumn . Все строки, имеющие это значение в splitColumn , считаются набором данных "A".
SplitValueB string ✔️ Строковое представление одного из значений в указанном SplitColumn . Все строки, имеющие это значение в splitColumn, считаются набором данных "B".
WeightColumn string Столбец, используемый для рассмотрения каждой строки во входных данных в соответствии с указанным весом. Должно быть именем числового столбца, например int, longreal. По умолчанию вес каждой строки равен "1". Чтобы использовать значение по умолчанию, введите тильду: ~. Как правило, при использовании столбца с весовым коэффициентом следует учитывать выборку, группирование или агрегирование данных, внедренных в каждой строке.

Пример: T | extend splitColumn= iff(request_responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", sample_Count)
Threshold real Реальная в диапазоне от 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: количество строк, захваченных шаблоном в set A (Set A, является эквивалентом where tostring(splitColumn) == SplitValueA).

  • CountB: количество строк, захваченных шаблоном в Set 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|) — основная мера важности шаблонов в описании разницы между двумя наборами.

  • Остальные столбцы: это исходная схема входных данных и описание шаблона, каждая строка (шаблон) представляет пересечение значений столбцов без подстановочных знаков (эквивалентно 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" )

Выходные данные

Идентификатор сегмента CountA Число B Процент A Процент B PercentDiffAB Штат EventType Исходный код 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 Специалист по управлению в чрезвычайных ситуациях