Azure 如何将Kusto查询与2个表列进行比较?

Azure 如何将Kusto查询与2个表列进行比较?,azure,kql,azure-monitoring,Azure,Kql,Azure Monitoring,如何检查ProductLine中的两个字段是否与dynTable中的两个字段完全匹配? 条件:如果PName与名称匹配,如果Cat与dynTable中的类别匹配 因此,基本上我们需要使用名为ProductLine的表中的信息迭代dynTable的项 | PName | Cat | Info ---------------------- | A | X | 123 | B | Y | 456 | C | Z | 789 ---------------------

如何检查ProductLine中的两个字段是否与dynTable中的两个字段完全匹配? 条件:如果PName与名称匹配,如果Cat与dynTable中的类别匹配

因此,基本上我们需要使用名为ProductLine的表中的信息迭代dynTable的项

| PName | Cat | Info
----------------------
| A     | X   | 123
| B     | Y   | 456
| C     | Z   | 789
----------------------

您可以使用
join
操作符在两列上进行连接:


您可以使用
join
操作符在两列上进行连接:


我将此应用于大约10000条以上的记录,是否有一种性能高效的方法来实现此目的?~10K条记录并不多。不过,在理想情况下,您的数据在摄入之前或摄入时会更好地结构化,这样您就不必在每次运行查询时扩展动态数组并使用
bag\u unpack()
插件。您可以研究使用摄取映射()或更新策略()在摄取时执行转换。我将此应用于大约10000条记录,是否有一种性能高效的方法可以实现此目的?~10K条记录并不多。不过,在理想情况下,您的数据在摄入之前或摄入时会更好地结构化,这样您就不必在每次运行查询时扩展动态数组并使用
bag\u unpack()
插件。您可以研究使用摄取映射()或更新策略()在摄取时执行转换。
let dynTable = 
    print myDynamicValue = dynamic(
        [
        {
            "Name": "X",
            "Category": "Y"
        },
        {
            "Name": "A",
            "Category": "B"
        },
        {
            "Name": "A",
            "Category": B"
        }
        ]) 
    | mvexpand myDynamicValue 
    | evaluate bag_unpack(myDynamicValue);
dynTable
datatable(Name:string, Category:string)
[
    "X", "Y", 
    "A", "B", 
    "A", "B", 
]
| join (datatable(PName:string, Cat:string, Info:string)
[
    'A', 'X', 123,
    'B', 'Y', 456,
    'C', 'Z', 789,
]) on $left.Name == $right.PName and $left.Category == $right.Cat