다음을 통해 공유


percentilew(), percentilesw()(집계 함수)

적용 대상: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

이 함수는 percentilew() expr에서 정의한 모집단의 지정된 가장 가까운 순위 백분위수에 대한 가중치 추정값을 계산합니다. percentilesw() 는 다음과 유사하게 percentilew()작동합니다. 그러나 percentilesw() 가중치가 지정된 백분위수 값을 한 번에 여러 개 계산할 수 있습니다. 이 값은 가중치가 있는 각 백분위수 값을 개별적으로 계산하는 것보다 더 효율적입니다.

가중치 백분위수는 입력 데이터 세트의 각 값에 가중치를 부여하여 데이터 세트의 백분위수 계산 이 메서드에서 각 값은 가중치와 같은 횟수를 반복한 다음 백분위수를 계산하는 데 사용됩니다. 가중치가 지정된 백분위수는 특정 값에 더 많은 중요성을 부여하여 백분위수의 "가중치"를 계산하는 방법을 제공합니다.

비중량 백분위수 계산은 백분위수()를 참조하세요.

참고 항목

이 함수는 summarize 연산와 함께 사용됩니다.

구문

percentilew(expr, weightExpr, 백분위수)

percentilesw(expr, weightExpr, 백분위수)

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

매개 변수

이름 Type 필수 설명
expr string ✔️ 집계 계산에 사용할 식입니다.
weightExpr long ✔️ 각 값을 제공할 가중치입니다.
percentile int 또는 long ✔️ 백분위수로 지정하는 상수입니다.
백분위수 int 또는 long ✔️ 하나 이상의 쉼표로 구분된 백분위수입니다.

반품

각각 별도의 열에 있는 그룹에서 지정된 백분위수의 expr에 대한 예상치가 있는 테이블을 반환합니다.

참고 항목

단일 열의 백분위수 값을 반환하려면 백분위수 반환을 배열로 참조하세요.

예제

가중치 백분위수 계산

작업을 완료하는 데 걸리는 시간(기간)을 반복적으로 측정한다고 가정합니다. 측정값의 모든 값을 기록하는 대신 100msec로 반올림된 Duration의 각 값과 반올림된 값이 나타난 횟수(BucketSize)를 기록합니다.

지정된 백분위수는 "가중치" 방식으로 계산하는 데 사용합니다 summarize percentilesw(Duration, BucketSize, ...) . 기간의 각 값은 실제로 해당 레코드를 구체화할 필요 없이 입력에서 BucketSize 시간이 반복된 것처럼 처리합니다.

다음 예제에서는 가중치가 지정된 백분위수입니다. 다음 대기 시간 값 집합을 밀리초 단위로 사용합니다. { 1, 1, 2, 2, 2, 5, 7, 7, 12, 12, 15, 15, 15, 18, 21, 22, 26, 35 }

대역폭 및 스토리지를 줄이려면 다음 버킷에 대한 사전 집계를 수행합니다. { 10, 20, 30, 40, 50, 100 } 각 버킷의 이벤트 수를 계산하여 다음 테이블을 생성합니다.

let latencyTable = datatable (ReqCount:long, LatencyBucket:long) 
[ 
    8, 10, 
    6, 20, 
    3, 30, 
    1, 40 
];
latencyTable

표에 다음이 표시됩니다.

  • 10ms 버킷의 8개 이벤트(하위 집합 { 1, 1, 2, 2, 2, 5, 7, 7 }에 해당)
  • 20ms 버킷의 6개 이벤트(하위 집합 { 12, 12, 15, 15, 15, 18 }에 해당)
  • 30ms 버킷의 3개 이벤트(하위 집합 { 21, 22, 26 }에 해당)
  • 40ms 버킷의 이벤트 1개(하위 집합 { 35 }에 해당)

이 시점에서 원래 데이터를 더 이상 사용할 수 없습니다. 각 버킷의 이벤트 수만. 이 데이터에서 백분위수 계산하려면 함수를 percentilesw() 사용합니다. 50, 75 및 99.9 백분위수의 경우 다음 쿼리를 사용합니다.

let latencyTable = datatable (ReqCount:long, LatencyBucket:long) 
[ 
    8, 10, 
    6, 20, 
    3, 30, 
    1, 40 
];
latencyTable
| summarize percentilesw(LatencyBucket, ReqCount, 50, 75, 99.9)

출력

percentile_LatencyBucket_50 percentile_LatencyBucket_75 percentile_LatencyBucket_99_9
20 20 40

백분위수 배열로 반환

개별 열의 값을 반환하는 대신 함수를 percentilesw_array() 사용하여 동적 배열 형식의 단일 열에 백분위수 값을 반환합니다.

구문

percentilesw_array(expr, weightExpr, 백분위수)

매개 변수

이름 Type 필수 설명
expr string ✔️ 집계 계산에 사용할 식입니다.
백분위수 int, long 또는 dynamic ✔️ 하나 이상의 쉼표로 구분된 백분위수 또는 백분위수의 동적 배열입니다. 각 백분위수는 정수 또는 긴 값일 수 있습니다.
weightExpr long ✔️ 각 값을 제공할 가중치입니다.

반품

그룹에서 지정된 백분위수의 expr에 대한 예상 값을 동적 배열 형식의 단일 열로 반환합니다.

예제

쉼표로 구분된 백분위수

let latencyTable = datatable (ReqCount:long, LatencyBucket:long) 
[ 
    8, 10, 
    6, 20, 
    3, 30, 
    1, 40 
];
latencyTable
| summarize percentilesw_array(LatencyBucket, ReqCount, 50, 75, 99.9)

출력

percentile_LatencyBucket
[20, 20, 40]

백분위수의 동적 배열

let latencyTable = datatable (ReqCount:long, LatencyBucket:long) 
[ 
    8, 10, 
    6, 20, 
    3, 30, 
    1, 40 
];
latencyTable
| summarize percentilesw_array(LatencyBucket, ReqCount, dynamic([50, 75, 99.9]))

출력

percentile_LatencyBucket
[20, 20, 40]