다음을 통해 공유


diffpatterns 플러그 인

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

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

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

참고 항목

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

구문

T | evaluate diffpatterns( ,

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

매개 변수

이름 유형 필수 설명
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)
임계값 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 .

예시

다음 예제에서는 플러그 인을 diffpatterns 사용하여 StormEvents 데이터 세트를 분석하는 방법을 보여 줍니다. 5월에 발생한 이벤트를 비교하여 손상이 있는 이벤트와 손상 없는 이벤트의 차이점에 초점을 맞춥니다. 쿼리는 플러그 인을 diffpatterns 사용하여 상태, EventType, Source 및 DamageCrops 열에 따라 이러한 두 그룹을 구분하는 패턴을 식별합니다.

StormEvents 
| where monthofyear(StartTime) == 5
| extend Damage = iff(DamageCrops + DamageProperty > 0 , 1 , 0)
| project State , EventType , Source , Damage, DamageCrops
| evaluate diffpatterns(Damage, "0", "1" )

출력

세그먼트 ID CountA (카운트A) CountB PercentA PercentB 퍼센트 차이 AB State(상태) 이벤트 유형 출처 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 백오십 117 3.28 8.93 5.65 홍수
8 (여덟) 362 176 7.91 13.44 5.52 응급 관리자