Azure 应用见解:分析-如何提取特定位置的字符串

Azure 应用见解:分析-如何提取特定位置的字符串,azure,azure-application-insights,azure-data-explorer,ms-app-analytics,Azure,Azure Application Insights,Azure Data Explorer,Ms App Analytics,我想做 正在提取参数为1的“查询”字符串,如“2”中所示 在分析中获取页面视图,表为“3” 1.页面视图中包含的实际URL https://example.com/dir01/?query=apple¶m=1 https://example.com/dir01/?query=apple¶m=1 https://example.com/dir01/?query=lemon+juice¶m=1 https://example.com/dir01/?query=lemon

我想做

  • 正在提取参数为1的“查询”字符串,如“2”中所示
  • 在分析中获取页面视图,表为“3”
1.页面视图中包含的实际URL
  • https://example.com/dir01/?query=apple¶m=1
  • https://example.com/dir01/?query=apple¶m=1
  • https://example.com/dir01/?query=lemon+juice¶m=1
  • https://example.com/dir01/?query=lemon+juice¶m=0
  • https://example.com/dir01/?query=tasteful+葡萄+葡萄酒¶m=1
2.预期提取的价值
  • apple
  • 柠檬+果汁
  • 雅致+葡萄+葡萄酒
3.人工智能分析的预期产出
  • 查询参数|计数
    • 苹果2
    • 柠檬+果汁| 1
    • 雅致+葡萄+葡萄酒| 1

试图做

我认为
extract
parseurl(url)
应该很有用。我尝试了后者
parseurl(url)
,但不知道如何将“查询参数”提取为一列

pageViews
| where timestamp > ago(1d)
| extend parsed_url=parseurl(url)
| summarize count() by tostring(parsed_url)
| render barchart 
  • url
    • http://aiconnect2.cloudapp.net/FabrikamProd/
  • parsed\u url
    • {“Scheme”:“http”,“Host”:“aiconnect2.cloudapp.net”,“Port”:“Path”:“/FabrikamProd/”,“Username”:“Password”:“Query Parameters”:{},“Fragment”:“}

是的,解析URL是一种方法。它会产生一个动态值,您可以将其用作json。 要获取查询参数的“查询”值,请执行以下操作:

pageViews
| where timestamp > ago(1d)
| extend parsed_url=parseurl(url)
| extend query = tostring(parsed_url["Query Parameters"]["query"])
并通过参数值进行总结:

pageViews
| where timestamp > ago(1d)
| extend parsed_url=parseurl(url)
| extend query = tostring(parsed_url["Query Parameters"]["query"])
| extend param = toint(parsed["Query Parameters"]["param"])
| summarize sum(param) by query
您可以在下面的中看到它如何作用于示例值:

希望这有帮助


尽快

我可以得到你的感激的循序渐进的指导。谢谢。这个答案是针对URL的,虽然它可能对一些人有所帮助,但它并没有回答如何在特定位置提取子字符串的实际问题:(-不会进行向下投票,但可能问题的标题应该更新,因为OP实际上并没有寻找一般的子字符串提取。parseurl现在在app insighs中以红色下划线,而parse_url则没有。两者仍然有效。是一个替换另一个吗?我没有找到有关此更改的文档。
let vals = datatable(url:string)["https://example.com/dir01/?
query=apple&param=1", "https://example.com/dir01/?query=apple&param=1", 
"https://example.com/dir01/?query=lemon+juice&param=1", 
"https://example.com/dir01/?query=lemon+juice&param=0", 
"https://example.com/dir01/?query=tasteful+grape+wine&param=1"];
vals
| extend parsed = parseurl(url)
| extend query = tostring(parsed["Query Parameters"]["query"])
| extend param = toint(parsed["Query Parameters"]["param"])
| summarize sum(param) by query