다음을 통해 공유


diffpatterns 플러그 인

적용 대상: ✅Microsoft Fabric✅Azure Data Explorer

동일한 구조의 두 데이터 세트를 비교하고 두 데이터 세트 간의 차이를 특징짓는 불연속 특성(차원)의 패턴을 찾습니다. 플러그 인은 연산자를 사용하여 호출됩니다 evaluate .

diffpatterns 는 오류를 분석하는 데 도움이 되도록 개발되었지만(예: 지정된 시간 프레임의 실패와 비 실패 비교) 동일한 구조의 두 데이터 세트 간에 차이점을 찾을 수 있습니다.

참고 항목

diffpatterns 은 (집합 간의 데이터 차이의 일부를 캡처하는) 중요한 패턴을 찾는 것을 목표로 하며 행 단위 차이를 의미하지는 않습니다.

구문

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

구문 규칙에 대해 자세히 알아봅니다.

매개 변수

이름 Type 필수 설명
SplitColumn string ✔️ 쿼리를 데이터 세트로 분할하는 방법을 알고리즘에 알려주는 열 이름입니다. SplitValueASplitValueB 인수에 대해 지정된 값에 따라 알고리즘은 쿼리를 "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: 현재 쿼리의 패턴에 할당된 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인 와일드카드 값이 포함됩니다. 와일드카드를 수동으로 변경할 수 있는 방법은 아래의 인수 섹션을 참조하세요.

  • 참고: 패턴은 종종 고유하지 않습니다. 겹칠 수 있으며 일반적으로 원래 행을 모두 포함하지는 않습니다. 일부 행은 패턴에 속하지 않을 수 있습니다.

  • 입력 파이프의 위치프로젝트를 사용하여 관심 있는 데이터로만 데이터를 줄입니다.
  • 흥미로운 행을 찾으면 필터에 특정 값을 추가하여 자세히 살펴볼 수 있습니다 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" )

출력

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 응급 관리자