percentilew(), percentilesw()(집계 함수)
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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] |