你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
sample 运算符
从输入表返回最大指定随机行数。
注意
-
sample
适用于速度而不是对值的均匀分配。 具体来说,这意味着如果在联合了 2 个不同大小的数据集的运算符(如union
或join
运算符)之后使用,它将不会产生“公平”的结果。 建议在表格引用和筛选器后立即使用sample
。 -
sample
是一个不确定运算符,每次在查询期间计算结果集时返回不同的结果集。 例如,以下查询将产生两个不同的行(即使其中一个预期会返回相同的行两次)。
语法
T| sample
NumberOfRows
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
T | string |
✔️ | 输入表格表达式。 |
NumberOfRows | int、long 或 real | ✔️ | 要返回的行数。 可以指定任何数值表达式。 |
示例
本节中的示例演示如何使用语法帮助你入门。
本文中的示例使用 帮助群集中的公开可用表,例如 示例 数据库中的
StormEvents
表。
本文中的示例使用公开可用的表,例如天气分析中的
StormEvents
表 示例数据。
生成示例
此查询创建一系列数字、采样一个值,然后复制该样本。
let _data = range x from 1 to 100 step 1;
let _sample = _data | sample 1;
union (_sample), (_sample)
输出
x |
---|
74 |
63 |
为确保在上面的示例中 _sample
计算一次,可以使用 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 的所有行)进行采样,可以将 sample-distinct
与 in
运算符结合使用。
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 | 大西洋南部 | Waterspout |
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 | 肯塔基州 | 洪水 |
... | ... | ... | ... | ... | ... |