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 | ✔️ | 返す行数。 任意の数値式を指定できます。 |
例
このセクションの例では、構文を使用して作業を開始する方法を示します。
この記事の例では、Samples データベースの
StormEvents
テーブルなど、ヘルプ クラスターので一般公開されているテーブルを使用します。
この記事の例では、Weather Analytics サンプル データの
StormEvents
テーブルなど、一般公開されているテーブルを使用します。
サンプルを生成する
このクエリでは、数値の範囲を作成し、1 つの値をサンプリングしてから、そのサンプルを複製します。
let _data = range x from 1 to 100 step 1;
let _sample = _data | sample 1;
union (_sample), (_sample)
出力
x |
---|
74 |
63 |
上記の例で _sample
が 1 回だけ計算されることを確実にするために、次のように materialize() 関数を使用できます。
let _data = range x from 1 to 100 step 1;
let _sample = materialize(_data | sample 1);
union (_sample), (_sample)
出力
x |
---|
24 |
24 |
特定の割合のデータのサンプルを生成する
(指定された行数ではなく) データの特定の割合をサンプリングするには、次を使用できます
StormEvents | where rand() < 0.1
出力
このテーブルには、出力の最初の数行が含まれています。 クエリを実行して、完全な結果を表示します。
StartTime | EndTime | EpisodeId | EventId | 状態 | EventType |
---|---|---|---|---|---|
2007-01-01T00:00:00Z | 2007-01-20T10:24:00Z | 2403 | 11914 | インディアナ州 | 洪水 |
2007-01-01T00:00:00Z | 2007-01-24T18:47:00Z | 2408 | 11930 | インディアナ州 | 洪水 |
2007-01-01T00:00:00Z | 2007-01-01T12:00:00Z | 1979 | 12631 | デラウェア | 大雨 |
2007-01-01T00:00:00Z | 2007-01-01T00:00:00Z | 2592 | 13208 | ノースカロライナ州 | 雷雨風 |
2007-01-01T00:00:00Z | 2007-01-31T23:59:00Z | 1492 | 7069 | ミネソタ州 | 旱魃 |
2007-01-01T00:00:00Z | 2007-01-31T23:59:00Z | 2240 | 10858 | テキサス | 旱魃 |
... | ... | ... | ... | ... | ... |
キーのサンプルを生成する
行ではなくキーをサンプリングする (たとえば、10 個の ID をサンプリングし、これらの ID のすべての行を取得する) には、in
演算子と組み合わせて sample-distinct
を使用できます。
let sampleEpisodes = StormEvents | sample-distinct 10 of EpisodeId;
StormEvents
| where EpisodeId in (sampleEpisodes)
出力
このテーブルには、出力の最初の数行が含まれています。 クエリを実行して、完全な結果を表示します。
StartTime | EndTime | EpisodeId | EventId | 状態 | EventType |
---|---|---|---|---|---|
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | フロリダ | 大雨 |
2007-09-20T21:57:00Z | 2007-09-20T22:05:00Z | 11078 | 60913 | フロリダ | 竜巻 |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | アトランティック サウス | 竜巻 |
2007-12-07T14:00:00Z | 2007-12-08T04:00:00Z | 13183 | 73241 | 米領サモア | 鉄砲水 |
2007-12-11T21:45:00Z | 2007-12-12T16:45:00Z | 12826 | 70787 | カンザス | 洪水 |
2007-12-13T09:02:00Z | 2007-12-13T10:30:00Z | 11780 | 64725 | ケンタッキー | 洪水 |
... | ... | ... | ... | ... | ... |