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

如何定义KQL函数:仅依赖必填列且保留输入表所有列

解决KQL函数保留输入表全列同时指定必填列的问题

你可以通过混合表约束语法实现需求,在函数参数里明确指定name和value为必填列,同时用*表示保留输入表的其他所有列。具体修改如下:

修改后的函数定义

.create-or-alter function with (docstring = "decode hex-strings from table", folder = "jobs") decode_hex_from_table(T:(name:string, value:string, *), _output_tablename:string) {
    let statistics_configs = database("statistics").statistics_configs | project name=src_name, description, value_type, start_byte, num_elements, element_length, little_endian, factor;
    let jobs_decoded = materialize(
        T
        | join kind=leftouter statistics_configs on name
        |  (...more transformations)
        );
  table(_output_tablename)
 }

原理说明

  • T:(name:string, value:string, *) 是KQL支持的表参数定义方式:
    • 前两项name:string和value:string强制要求输入表必须包含这两个指定类型的列,确保关联逻辑能正常执行;
    • 末尾的*表示保留输入表中除必填列之外的所有其他列,不管输入表结构如何变化,只要有name和value就能正常调用,且不会丢失原有数据列。

这样修改后,函数就能适配所有包含name和value列的不同结构表,同时保留输入表的全部列,满足后续转换需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 12:14:59