sample 演算子
適用対象: ✅Microsoft Fabric✅Azure データ エクスプローラー✅Azure Monitor✅Microsoft Sentinel
入力テーブルから指定した数までのランダム行を返します。
Note
sample
は、値の均等な分布よりもスピードを重視しています。 具体的には、異なるサイズの 2 つのデータセット (union
演算子やjoin
演算子など) を結合する演算子の後に使用した場合、"fair" の結果が生成されないことを意味します。 テーブルの参照とフィルターの直後にsample
を使用することをお勧めします。sample
は非決定論的演算子であり、クエリ中に評価されるごとに異なる結果セットが返されます。 たとえば、次のクエリを使用すると、(同じ行が 2 回返される場合でも) 2 つの異なる行が生成されます。
構文
T | sample
NumberOfRows
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
T | string |
✔️ | 表形式の入力式。 |
NumberOfRows | int、long、または real | ✔️ | 返す行数。 任意の数値式を指定できます。 |
例
let _data = range x from 1 to 100 step 1;
let _sample = _data | sample 1;
union (_sample), (_sample)
出力
x |
---|
83 |
3 |
上記の例で _sample
が 1 回だけ計算されることを確実にするために、次のように materialize() 関数を使用できます。
let _data = range x from 1 to 100 step 1;
let _sample = materialize(_data | sample 1);
union (_sample), (_sample)
出力
x |
---|
34 |
34 |
(指定された行数ではなく) データの特定の割合をサンプリングするには、次を使用できます
StormEvents | where rand() < 0.1
行ではなくキーをサンプリングするには (たとえば、サンプルの ID を 10 個取得し、これらの ID の行をすべて取得する)、in
演算子と組み合わせて sample-distinct
を使用できます。
let sampleEpisodes = StormEvents | sample-distinct 10 of EpisodeId;
StormEvents
| where EpisodeId in (sampleEpisodes)