You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KQL是否支持通过自定义函数为Kusto表每行追加列?

KQL实现基于自定义逻辑为每行追加列的正确方式

KQL支持你要的功能,但你用错了运算符:Invoke是用来调用表值函数(返回完整表表达式的函数)的,而你写的Test是标量函数(返回单个值的函数),直接用Invoke会失败。

正确实现方式(标量函数+extend)

你的标量函数定义可以保留,KQL函数默认以最后一行表达式作为返回值,当前写法已满足要求:

.create-or-alter function Test(input: string, column: dynamic) {
    // custom logic
    tostring(column.value1);
}

要为每行追加新列,直接用extend运算符调用这个标量函数即可:

MyTable 
| extend ResultColumn = Test("inputString", column)

若要用Invoke实现(需改为表值函数)

如果一定要用Invoke,需要把函数改成表值函数,接收输入表作为参数,同时指定其他参数:

.create-or-alter function TestTable(inputTable:(*), inputStr:string) {
    inputTable
    | extend ResultColumn = tostring(column.value1) // 这里可直接编写自定义逻辑,或调用上述标量函数
}

调用方式:

MyTable 
| invoke TestTable("inputString")

内容的提问来源于stack exchange,提问作者DxG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 09:39:51