【问题标题】:Change name of all columns based on table names (KQL / Kusto / Azure Data Explorer)根据表名更改所有列的名称(KQL / Kusto / Azure 数据资源管理器)
【发布时间】:2021-11-15 18:19:16
【问题描述】:

我正在加入 2 个表,它们都有数百个名称相似的列。我想更改每个表中的所有列名以包含表名。为了使查询简单,我不想显式地调用每个列名。下面的查询实现了这个目标。但是,以下查询在应用于大型数据集时非常慢。我假设性能缓慢是由于 replace_regex() 函数在整个数据集上运行。是否有其他方法可以在提高更大数据集的性能的同时达到相同的结果?

let T1 = datatable (Key:string , Col2:string , Col3:string )
[
  "1", "b", "c",
  "2", "e", "f",
  "3", "h", "i"
] 
| project PackedRecord = todynamic(replace_regex(tostring(pack_all()), '"([a-zA-Z0-9_]*)":"', @'"T1_\1":"'))
| evaluate bag_unpack(PackedRecord);
let T2 = datatable (Key:string , Col2:string , Col3:string )
[
  "1", "B", "C",
  "2", "E", "F",
  "4", "H", "I"
] 
| project PackedRecord = todynamic(replace_regex(tostring(pack_all()), '"([a-zA-Z0-9_]*)":"', @'"T2_\1":"'))
| evaluate bag_unpack(PackedRecord);
let JoinTable = T1 | join kind=inner T2 on $left.T1_Key == $right.T2_Key;
JoinTable

上一个问题供参考

Rename all column names by adding a string in KQL/Kusto/Data Explorer

【问题讨论】:

    标签: azure-data-explorer kql kusto-explorer


    【解决方案1】:

    在执行bag_unpack 操作时,您可以在不使用replace_regex() 和依赖OutputColumnPrefix 的情况下获得相同的结果。从你原来的 kql sn-p 中修改了几行。

    根据 kusto 文档,OutputColumnPrefix 参数允许传递一个公共前缀以添加到插件生成的所有列。

    let T1 = datatable (Key:string , Col2:string , Col3:string )
    [
      "1", "b", "c",
      "2", "e", "f",
      "3", "h", "i"
    ]
    | project Key, PackedRecord = pack_all()
    | evaluate bag_unpack(PackedRecord, OutputColumnPrefix = "T1_") | project-away T1_Key; // get rid of additional key;
    let T2 = datatable (Key:string , Col2:string , Col3:string )
    [
      "1", "B", "C",
      "2", "E", "F",
      "4", "H", "I"
    ]
    | project Key, PackedRecord = pack_all()
    | evaluate bag_unpack(PackedRecord, OutputColumnPrefix = "T2_") | project-away T2_Key; // get rid of additional key;
    T1 
    | join kind=inner T2 on $left.Key == $right.Key | project-away Key1 // get rid of second key after join
    

    【讨论】:

    • degant,这太棒了!至少,这会大大清理查询。此外,似乎也在提高性能。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    相关资源
    最近更新 更多