将游标传递给用户定义函数的正确方法是什么?

时间:2019-04-06 06:06:24

标签: azure-data-explorer

我正在尝试将游标传递给这样的函数:

.create-or-alter function GetLatestValues(cursor:string) { 
    Logs | where cursor_after(cursor)
}

但是我收到了Error cursor_after(): argument #1 is invalid的回复。有什么我想念的吗?字符串使用的数据类型错误吗?

此方法适用于lambda函数:

let GetLatestValues = (cursor:string) {
   Logs | where cursor_after(cursor)
};
GetLatestValues('') | take 1

1 个答案:

答案 0 :(得分:1)

默认情况下,在Kusto中​​定义一个函数会验证存储的函数,并且如果您使用的是游标,则系统将尝试使用空参数来执行此操作,从而导致失败。 您可以使用skipvalidation = true参数覆盖此行为(请参阅位于以下位置的文档: https://docs.microsoft.com/en-us/azure/kusto/management/functions#create-function

.create-or-alter function with (skipvalidation = "true")
GetLatestValues(cursor:string)
{ 
    Logs | where cursor_after(cursor)
}