如何在Application Insights Analytics中加入customDimensions?

时间:2017-01-12 18:25:12

标签: join azure-application-insights

当我尝试加入其中一个customDimensions字段时,我收到一个语法错误:“join属性可能只是列实体或等式表达式”。我可以加入非自定义列,例如名称或时间戳。

示例代码:

let ExperimentLaunchedEvents = customEvents | where name=="ExperimentLaunched" and timestamp > now(-30d);  

let ExperimentTerminatedEvents = customEvents | where name=="ExperimentTerminated" and timestamp > now(-30d); 

ExperimentLaunchedEvents  
    | project name, timestamp, experimentId=customDimensions.ExperimentId  
    | join kind=leftanti (ExperimentTerminatedEvents  
                            | project name, timestamp, experimentId=customDimensions.ExperimentId) on tostring(experimentId)  

如果不支持加入customDimensions列,是否有任何方法可以选择尚未终止的已启动实验?谢谢!

2 个答案:

答案 0 :(得分:13)

John在评论中提到当您为任何操作使用自定义维度时,您需要将其转换为查询引擎可以使用的类型。在这种情况下,我使用tostring(),但您也可以使用其他功能,例如toint()

我还扩展了一个列类型,因此它可以在诸如join之类的子句中重复使用,也可以不必长时间反复使用。

ExperimentLaunchedEvents
| extend experimentId=tostring(customDimensions.ExperimentId)
| project name, timestamp, experimentId
| join kind=leftanti (ExperimentTerminatedEvents
| extend experimentId=tostring(customDimensions.ExperimentId)
| project name, timestamp, experimentId)
on experimentId

答案 1 :(得分:0)

与詹姆斯戴维斯的答案相同,但是由于它被包含在两个项目条款中,因为它包含在两个项目条款中而重复了两次实验列的重复增强,正如squallsv所指出的那样

let myExperimentLauncedEvents=
    ExperimentLaunchedEvents
        | extend experimentId=tostring(customDimensions.ExperimentId)
        | project name, timestamp, experimentId
        | join kind=leftanti (ExperimentTerminatedEvents
        | extend experimentId=tostring(customDimensions.ExperimentId)
        | project name, timestamp, experimentId)
    on experimentId;
myExperimentLauncedEvents
    | project name, timestamp, experimentId

因此,通过将结果分配给variable (temp table),然后对该变量使用项目子句,我们可以选择仅显示所需的列。

相关问题