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

KQL/Kusto/Data Explorer中如何无需显式指定列为所有列名加表名前缀

实现方案

你可以通过Kusto内置的属性包打包/解包能力实现批量加前缀,无需显式声明每一列:

核心逻辑

  • 用bag_pack_all()将单表所有列打包为单个动态属性包,包的字段名设置为你要加的表前缀
  • 用bag_unpack()解包属性包,指定分隔符为.,自动生成「前缀.原列名」格式的列名
  • 处理完两张表后正常关联即可

对应示例的完整可运行代码

let T1 = datatable (Key:string , Col2:string , Col3:string )[
"1", "b", "c",
"2", "e", "f",
"3", "h", "i"]
// 批量给T1所有列加T1.前缀
| extend T1 = bag_pack_all()
| project T1
| bag_unpack(T1, '.');
let T2 = datatable (Key:string , Col2:string , Col3:string )[
"1", "B", "C",
"2", "E", "F",
"4", "H", "I"]
// 批量给T2所有列加T2.前缀
| extend T2 = bag_pack_all()
| project T2
| bag_unpack(T2, '.');
// 按关联键关联,直接使用带前缀的列名即可
T1 | join T2 on T1.Key == T2.Key

运行效果

执行后会直接输出你要求的列名格式:

T1.Key T1.Col2 T1.Col3 T2.Key T2.Col2 T2.Col3
1      b       c       1      B       C
2      e       f       2      E       F

补充说明

如果不需要保留两张表的重复关联键,你可以在解包后单独删除不需要的列,比如在T2解包后加一行| project-away T2.Key,只保留T1的Key列即可,不需要修改其他列的处理逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:57:03