gpt4 book ai didi

azure - Kusto 查询是否支持短路 (McCarthy) 评估

转载 作者:行者123 更新时间:2023-12-02 08:29:08 25 4
gpt4 key购买 nike

我正在尝试使用以下查询片段来允许变量正则表达式过滤器输入。

| where isempty("[[HttpStatusCode]]") or tostring(httpStatus_d) matches regex "[[HttpStatusCode]]"

该查询正在 Grafana 内的 Azure Log Analytics 中执行。我的 Grafana 仪表板上有变量,允许用户输入输入到查询中的正则表达式。当过滤器为空时,我预计不会应用任何过滤。我认为 Kusto 查询可能支持短路,并且当 isempty(..) 评估为 true 时,表达式的其余部分将被忽略,并且匹配正则表达式部分不会执行也不会抛出错误。

当字符串为空时,我收到的错误消息是“Relop 语义错误:'匹配正则表达式'具有以下语义错误:SEM0031:匹配正则表达式:参数 2 必须是常量非空字符串值。”

最佳答案

Kusto 没有短路功能。但您可以尝试下面的解决方法。

首先,您需要检查[[HttpStatusCode]]是否为空。如果为空,可以为其分配一个虚拟值(注意,请确保该虚拟值不能与where子句中的matches regex运算符匹配)。因此,输入空值时不会抛出任何错误。

示例查询:

table_name 
| extend tempvalue= iff(isempty("[[HttpStatusCode]]"),"a dummy value","[[HttpStatusCode]]")
| where isempty("[[HttpStatusCode]]") or tostring(httpStatus_d) matches regex tempvalue

关于azure - Kusto 查询是否支持短路 (McCarthy) 评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62581712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com