percentilew()、percentilesw() (集計関数)
関数はpercentilew()
、expr で定義された母集団の指定された最も近いランクのパーセンタイルの加重推定値を計算します。 percentilesw()
は と同様に機能します percentilew()
。 ただし、 percentilesw()
複数の重み付けパーセンタイル値を一度に計算できます。これは、各加重パーセンタイル値を個別に計算するよりも効率的です。
重み付けパーセンタイルは、入力データセットの各値に重みを与えることによって、データセット内のパーセンタイルを計算します。 このメソッドでは、各値は重みと等しい回数繰り返されると見なされ、パーセンタイルの計算に使用されます。 特定の値をより重要にすることで、重み付けパーセンタイルは、"重み付け" 方式でパーセンタイルを計算する方法を提供します。
重み付けされていないパーセンタイルを計算するには、「 percentiles()」を参照してください。
Note
この関数は、summarize 演算子と組み合わせて使用します。
構文
percentilew(
Expr,
weightExpr,
パーセンタイル)
percentilesw(
Expr,
weightExpr,
パーセン タイル)
構文規則について詳しく知る。
パラメーター
名前 | 型 | 必須 | 説明 |
---|---|---|---|
expr | string |
✔️ | 集計計算に使用する式。 |
weightExpr | long |
✔️ | 各値を与える重み。 |
パーセンタイル | int または long | ✔️ | パーセンタイルを指定する定数。 |
パーセン タイル | int または long | ✔️ | 1 つ以上のコンマ区切りパーセンタイル。 |
戻り値
グループ内の指定されたパーセンタイルの expr の推定値を含むテーブルを返します。それぞれは個別の列に格納されます。
Note
1 つの列のパーセンタイルを返すには、「 配列としてパーセンタイルを返す」を参照してください。
例
重み付けパーセンタイルを計算する
完了するアクションを実行する時間 (Duration) を繰り返し測定するものとします。 測定のすべての値を記録する代わりに、100 ミリ秒に丸めた Duration の各値と、丸めた値の表示回数 (BucketSize) を記録します。
summarize percentilesw(Duration, BucketSize, ...)
を使用して、「加重」方法で指定されたパーセンタイルを計算します。 Duration の各値は、入力で 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
次の表が表示されます。
- 10 ミリ秒バケット内の 8 つのイベント (サブセット
{ 1, 1, 2, 2, 2, 5, 7, 7 }
に対応) - 20 ミリ秒バケット内の 6 つのイベント (サブセット
{ 12, 12, 15, 15, 15, 18 }
に対応) - 30 ミリ秒バケット内の 3 つのイベント (サブセット
{ 21, 22, 26 }
に対応) - 40 ミリ秒バケット内の 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,
パーセン タイル)
パラメーター
名前 | 型 | 必須 | 説明 |
---|---|---|---|
expr | string |
✔️ | 集計計算に使用する式。 |
パーセン タイル | int、long、または動的 | ✔️ | 1 つ以上のコンマ区切りパーセンタイルまたはパーセンタイルの動的配列。 各パーセンタイルには、整数または長い値を指定できます。 |
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] |
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示