Azure Log Analytics中如何使用contains查询多个相似字符串值
可以实现,你可以使用KQL内置的批量匹配运算符完成需求,不需要重复编写多段查询语句,以下是适配你场景的实现方案:
方案1:前缀精准匹配(推荐)
你的参数结构是公共前缀固定、后缀为日期时间戳,使用starts_with_any运算符可以精准匹配以指定字符串开头的参数,不会误命中中间包含对应字符串的记录:
ADFPipelineRun | project JobId, PLName, JobStatus, PL_param, Status | where PLName == "org_daily_data_load" | where Status == "Failed" | where PL_param starts_with_any ("org_erp_sap", "ABC_ENV_D", "123_xyz_abc")
方案2:任意位置包含匹配
如果你的需求是只要参数包含任意一个目标公共字符串即可,不需要严格匹配前缀,可以使用has_any运算符:
ADFPipelineRun | project JobId, PLName, JobStatus, PL_param, Status | where PLName == "org_daily_data_load" | where Status == "Failed" | where PL_param has_any ("org_erp_sap", "ABC_ENV_D", "123_xyz_abc")
拓展用法:统一管理匹配列表
如果需要匹配的公共字符串数量较多,可以提前定义动态数组统一维护,后续修改只需要调整数组内容即可:
// 定义需要匹配的公共字符串列表 let match_list = dynamic(["org_erp_sap", "ABC_ENV_D", "123_xyz_abc"]); ADFPipelineRun | project JobId, PLName, JobStatus, PL_param, Status | where PLName == "org_daily_data_load" | where Status == "Failed" | where PL_param starts_with_any (match_list)
内容的提问来源于stack exchange,提问作者LearneR
相关产品推荐
相关产品推荐

