KQL 快速参考
本文显示了函数的列表及其说明,以帮助你开始使用 Kusto 查询语言。
运算符/函数 | 说明 | 语法 |
---|---|---|
筛选/搜索/条件 | 通过筛选或搜索来查找相关数据 | |
where | 基于特定的谓词进行筛选 | T | where Predicate |
where contains/has | Contains :查找任何子字符串匹配项Has :查找特定字词(性能更好) |
T | where col1 contains/has "[search term]" |
search | 在表的所有列中搜索值 | [TabularSource |] search [kind=CaseSensitivity] [in (TableSources)] SearchPredicate |
take | 返回指定数量的记录。 用来测试查询 注意: take 和 limit 是同义词。 |
T | take NumberOfRows |
case | 添加一个条件语句,类似于其他系统中的 if/then/elseif。 | case(predicate_1, then_1, predicate_2, then_2, predicate_3, then_3, else) |
distinct | 生成一个表,其中包含输入表中所提供列的不同组合 | distinct [ColumnName], [ColumnName] |
日期/时间 | 使用日期和时间函数的操作 | |
ago | 返回相对于查询执行时间的时间偏移量。 例如,ago(1h) 是当前时钟读数之前的一小时。 |
ago(a_timespan) |
format_datetime | 以各种日期格式返回数据。 | format_datetime(datetime , format) |
bin | 将某个时间范围内的所有值进行舍入并对其进行分组 | bin(value,roundTo) |
创建/删除列 | 在表中添加或删除列 | |
输出包含一个或多个标量表达式的单个行 | print [ColumnName =] ScalarExpression [',' ...] |
|
project | 选择要按指定顺序包括的列 | T | project ColumnName [= Expression] [, ...] 或 T | project [ColumnName | (ColumnName[,]) =] Expression [, ...] |
project-away | 选择要从输出中排除的列 | T | project-away ColumnNameOrPattern [, ...] |
project-keep | 选择要在输出中保留的列 | T | project-keep ColumnNameOrPattern [, ...] |
project-rename | 对结果输出中的列重命名 | T | project-rename new_column_name = column_name |
project-reorder | 对结果输出中的列重新排序 | T | project-reorder Col2, Col1, Col* asc |
extend | 创建一个计算列并将其添加到结果集 | T | extend [ColumnName | (ColumnName[, ...]) =] Expression [, ...] |
对数据集进行排序和聚合 | 通过以有意义的方式对数据进行排序或分组来重构数据 | |
sort 运算符 | 根据一个或多个列按升序或降序为输入表的行排序 | T | sort by expression1 [asc|desc], expression2 [asc|desc], … |
返回页首 | 当使用 by 对数据集进行排序时返回数据集的前 N 行 |
T | top numberOfRows by expression [asc|desc] [nulls first|last] |
summarize | 根据 by 分组列对行进行分组,并计算每个组的聚合 |
T | summarize [[Column =] Aggregation [, ...]] [by [Column =] GroupExpression [, ...]] |
count | 对输入表中的记录进行计数(例如 T) 此运算符是 summarize count() 的简写 |
T | count |
join | 通过匹配每个表中指定列的值,合并两个表的行以组成新表。 支持完整范围的联接类型:fullouter 、inner 、innerunique 、leftanti 、leftantisemi 、leftouter 、leftsemi 、rightanti 、rightantisemi 、rightouter 、rightsemi |
LeftTable | join [JoinParameters] ( RightTable ) on Attributes |
union | 获取两个或多个表,并返回表中的所有行。 | [T1] | union [T2], [T3], … |
range | 生成包含一系列算术值的表 | range columnName from start to stop step step |
设置数据格式 | 重构数据以便以有用的方式输出 | |
lookup | 使用在维度表中查找的值扩展事实数据表的列 | T1 | lookup [kind = (leftouter|inner)] ( T2 ) on Attributes |
mv-expand | 将动态数组转换为行(多值扩展) | T | mv-expand Column |
parse | 计算字符串表达式并将其值分析为一个或多个计算列。 用于构造非结构化数据。 | T | parse [kind=regex [flags=regex_flags] |simple|relaxed] Expression with * (StringConstant ColumnName [: ColumnType]) *... |
make-series | 沿指定的轴创建指定聚合值的系列 | T | make-series [MakeSeriesParamters] [Column =] Aggregation [default = DefaultValue] [, ...] on AxisColumn from start to end step step [by [Column =] GroupExpression [, ...]] |
let | 将名称绑定到可引用其绑定值的表达式。 值可以是 lambda 表达式,用来创建作为查询的一部分的查询定义函数。 使用 let 基于其结果看起来像新表的表创建表达式。 |
let Name = ScalarExpression | TabularExpression | FunctionDefinitionExpression |
常规 | 其他操作和函数 | |
invoke | 对作为输入的表运行此函数。 | T | invoke function([param1, param2]) |
evaluate pluginName | 评估查询语言扩展(插件) | [T |] evaluate [ evaluateParameters ] PluginName ( [PluginArg1 [, PluginArg2]... ) |
可视化 | 以图形格式显示数据的操作 | |
render | 将结果呈现为图形输出 | T | render Visualization [with (PropertyName = PropertyValue [, ...] )] |