次の方法で共有


sample 演算子

適用対象: ✅Microsoft FabricAzure データ エクスプローラーAzure MonitorMicrosoft Sentinel

入力テーブルから指定した数までのランダム行を返します。

Note

  • sample は、値の均等な分布よりもスピードを重視しています。 具体的には、異なるサイズの 2 つのデータセット ( union 演算子や join 演算子など) を結合する演算子の後に使用した場合、"fair" の結果が生成されないことを意味します。 テーブルの参照とフィルターの直後に sample を使用することをお勧めします。
  • sample は非決定論的演算子であり、クエリ中に評価されるたびに異なる結果セットを返します。 たとえば、次のクエリを使用すると、(同じ行が 2 回返される場合でも) 2 つの異なる行が生成されます。

構文

T| sampleNumberOfRows

構文規則について詳しく知る。

パラメーター

件名 タイプ 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 ケンタッキー 洪水
... ... ... ... ... ...