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: 현재 쿼리의 패턴에 할당된 ID입니다(참고: 반복 쿼리에서는 ID가 동일하지 않음).
CountA: A 집합의 패턴에 의해 캡처된 행의 수입니다(A 설정은 해당
where tostring(splitColumn) == SplitValueA
).CountB: B 집합의 패턴에 의해 캡처된 행의 수입니다(B 설정은 해당
where tostring(splitColumn) == SplitValueB
).PercentA: 패턴(100.0 * CountA/count(SetA))에 의해 캡처된 Set A의 행 백분율입니다.
PercentB: 패턴(100.0 * CountB/count(SetB))에 의해 캡처된 Set B의 행 백분율입니다.
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" )
출력
SegmentId | CountA | CountB | PercentA | PercentB | PercentDiffAB | State(상태) | EventType | Source | DamageCrops |
---|---|---|---|---|---|---|---|---|---|
0 | 2278 | 93 | 49.8 | 7.1 | 42.7 | Hail | 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 | Flash Flood | |||
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 | 응급 관리자 |