如果 <something>,在 Kusto 中什么都不做

hcd*_*ocs 2 azure-application-insights kql azure-data-explorer

用例:在 Azure Application Insights 中,从 Azure Web 应用创建每页的视图表

在 Azure Application Insights 中使用 Kusto,我想合并表 1 中的行:

在此处输入图片说明

进入表2:

在此处输入图片说明

不幸的是,下面的查询将第一列(第一行除外)中的单元格替换为第二列中的单元格。这是基于查询的编写方式所预期的。不幸的是,这是不正确的,而不是我的目标。

在此处输入图片说明

pageViews 
| where timestamp between(datetime("2020-03-01T00:00:00.000Z")..datetime("2020-06-01T00:00:00.000Z"))
| extend guide = case(
    url contains "/guide-1/","guide-1",
    url contains "/guide-2/","guide-2",
    url contains "/guide-3/","guide-3",
    "home-page"
)
| extend tag = case(
    url contains "/guide-1/","install",
    guide contains "home-page","home-page",
    "how-to"
)
| extend name = case(
    name contains "Welcome to docs","Welcome to docs",
    "home-page" //This is incorrect - nothing should happen if the name does not contain "Welcome to docs"
)
| summarize Ocurrences=count() by name, tag, guide
Run Code Online (Sandbox Code Playgroud)

由于我对 Kusto 缺乏了解,我已经在 Microsoft 文档中搜索了一种在不满足条件但没有提出任何问题的情况下“什么都不做”的方法。我尝试过iff但没有成功。

感谢您的任何帮助,包括如果这种方法不是最好的建议。

小智 5

如果您想在某些条件下保留“名称”,您可以这样做:

| 扩展名称 = 案例(名称包含“欢迎使用文档”,“欢迎使用文档”,名称)

pageViews 
| where timestamp between(datetime("2020-03-01T00:00:00.000Z")..datetime("2020-06-01T00:00:00.000Z"))
| extend guide = case(
    url contains "/guide-1/","guide-1",
    url contains "/guide-2/","guide-2",
    url contains "/guide-3/","guide-3",
    "home-page"
)
| extend tag = case(
    url contains "/guide-1/","install",
    guide contains "home-page","home-page",
    "how-to"
)
| extend name = case(
    name contains "Welcome to docs","Welcome to docs",
    name
)
| summarize Ocurrences=count() by name, tag, guide
Run Code Online (Sandbox Code Playgroud)

此外,最好使用 'has' 而不是 'contains':'has' 查找完整单词并且比 'contains' 更快。