다음을 통해 공유


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

적용 대상: ✅Microsoft Fabric✅

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

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

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

참고 항목

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

구문

percentilew( expr,weightExpr,백분위수)

percentilesw( expr,weightExpr,백분위수)

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

매개 변수

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

반품

각각 별도의 열에 있는 그룹에서 지정된 백분위수의 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 ✔️ 집계 계산에 사용할 식입니다.
백분위수 실제 또는 동적 ✔️ 하나 이상의 쉼표로 구분된 백분위수 또는 백분위수의 동적 배열입니다. 각 백분위수는 실제 값이어야 합니다.
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]