azure 如何在表的每一行上使用多个参数调用Kusto函数

dwbf0jvd  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(97)

我有Kusto函数,它将接受几个参数并返回标量输出。我想在表的每一行调用它。

function = test_data(since:datetime) {

   // perform some operations and return scalar results;
   let result = <sometable>
   let scalar_data = toscalar(result);
   print(scalar_events);

}

我想在表的每一行调用这个:
当我尝试这个:

let result_data = datatable(since:datetime)
[
  datetime(2023-09-20T18:37:14.5162522Z),   
  datetime(2023-09-20T18:37:29.2246502Z),   
  datetime(2023-09-20T18:37:29.2246502Z),   
  datetime(2023-09-20T18:37:29.2246502Z),   
];
result_data
| extend data = test_data(since);

我得到了下面的错误:
误差
语义错误:当前上下文中不需要表格表达式
clientRequestId:
当我尝试使用toscalar如下列是不可见的。

let result_data = datatable(since:datetime)
[
  datetime(2023-09-20T18:37:14.5162522Z),   
  datetime(2023-09-20T18:37:29.2246502Z),   
  datetime(2023-09-20T18:37:29.2246502Z),   
  datetime(2023-09-20T18:37:29.2246502Z),   
];
result_data
| extend data = toscalar(test_data(since));

错误代码:
误差
语义错误:'toscalar'运算符:无法解析名为“since”的表或标量表达式
clientRequestId:
当我传递静态日期时间时,它工作得很好。

let result_data = datatable(since:datetime)
[
  datetime(2023-09-20T18:37:14.5162522Z),   
  datetime(2023-09-20T18:37:29.2246502Z),   
  datetime(2023-09-20T18:37:29.2246502Z),   
  datetime(2023-09-20T18:37:29.2246502Z),   
];
result_data
| extend data = toscalar(test_data(datetime(2023-09-20T18:37:14.5162522Z)));

如何在表的每一行上调用Kusto函数?这里有多个参数要传递。例如,我传递一个param(Since)

hlswsv35

hlswsv351#

我在我的环境中复制,下面是我的观察:

Note:如果你想使用toscalar(),它只能在单个表达式上使用,不能在列上使用,这是Microsoft-Document的限制:

返回计算表达式的标量常数值。

下面是为我工作的**KQL Query,我在表中的每行上使用了tostring()**:

let x = (since:datetime)
{
tostring(since)
};
let result_data = datatable(since1:datetime)
[
  datetime(2023-09-20T18:37:14.5162522Z),   
  datetime(2023-09-20T18:37:29.2246502Z),   
  datetime(2023-09-20T18:37:29.2246502Z),   
  datetime(2023-09-20T18:37:29.2246502Z),   
];
result_data
| extend data = x(since1);

Output:

Fiddle.

相关问题