Подключаемый модуль 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 , long real . По умолчанию вес каждой строки равен "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. См. раздел "Аргументы" ниже, как можно изменить подстановочные знаки вручную.
- Примечание. Шаблоны часто не отличаются. Они могут перекрываться, и обычно не охватывают все исходные строки. Некоторые строки могут не охватываться ни одним из шаблонов.
Совет
Пример
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 | Специалист по управлению в чрезвычайных ситуациях |