InfluxDB如何进行模糊查询?

摘要:InfluxDB 模糊查询完整总结与示例 📊 查询方式全面总结(InfluxQL) 1. 精确匹配(最佳性能) -- 单值精确匹配 WHERE routername = 'NJ-MAI
InfluxDB 模糊查询完整总结与示例 📊 查询方式全面总结(InfluxQL) 1. 精确匹配(最佳性能) -- 单值精确匹配 WHERE routername = 'NJ-MAIPU-1' -- 多值精确匹配(使用OR) WHERE routername = 'NJ-MAIPU-1' OR routername = 'NJ-SCT-R02' 2. 基础模糊匹配(简洁写法) -- 包含匹配 WHERE routername =~ /MAIPU/ WHERE host =~ /web/ -- 等同于明确写法 WHERE routername =~ /.*MAIPU.*/ 3. 标准模式匹配(明确范围) -- 开头匹配 WHERE routername =~ /^NJ-.*/ -- 结尾匹配 WHERE routername =~ /.*-R01$/ -- 包含匹配(明确写法) WHERE routername =~ /.*MAIPU.*/ 4. 多值组合匹配(高效多选) -- 多值或匹配 WHERE routername =~ /(MAIPU|SCT|CORE)/ -- 精确多值匹配 WHERE routername =~ /^(NJ-MAIPU-1|NJ-SCT-R02)$/ 5. 字符范围匹配 -- 数字匹配 WHERE routername =~ /[0-9]/ -- 字母匹配 WHERE routername =~ /[A-Z]/ -- 组合匹配 WHERE routername =~ /[A-Z][0-9]/ -- 如A1, B2等 ⚠️ 重要注意事项 InfluxQL 不支持的特性: -- 以下语法会报错! WHERE routername IN ('NJ-MAIPU-1', 'NJ-SCT-R02') WHERE routername IN ('value1', 'value2') 多OR正则(避免使用): -- 性能差,避免使用 WHERE routername =~ /MAIPU/ OR routername =~ /SCT/ OR routername =~ /CORE/ 🔍 各种方式的特性对比 查询方式 语法示例 性能 可读性 适用场景 精确匹配 routername = '值' ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 已知具体值 多值OR精确 name = 'A' OR name = 'B' ⭐⭐⭐⭐ ⭐⭐⭐⭐ 已知多个具体值 基础模糊 name =~ /pattern/ ⭐⭐⭐ ⭐⭐⭐⭐⭐ 快速简单匹配 多值组合 name =~ /(pat1|pat2)/ ⭐⭐⭐ ⭐⭐⭐⭐ 同类型多值匹配 标准模式 name =~ /.*pattern.*/ ⭐⭐⭐ ⭐⭐⭐⭐ 明确范围匹配 多OR正则 =~ /a/ or =~ /b/ ⭐ ⭐⭐ 避免使用 🎯 应用场景详细示例 场景1:精确设备查询 -- 查询特定设备 SELECT * FROM xr_intf_stats WHERE routername = 'NJ-MAIPU-1' ORDER BY time DESC LIMIT 10 -- 查询多个特定设备 SELECT * FROM xr_intf_stats WHERE routername = 'NJ-MAIPU-1' OR routername = 'NJ-SCT-R02' ORDER BY time DESC LIMIT 10 场景2:设备类型筛选 -- 查询所有MAIPU设备 SELECT * FROM xr_intf_stats WHERE routername =~ /MAIPU/ ORDER BY time DESC -- 查询多种类型设备 SELECT * FROM xr_intf_stats WHERE routername =~ /(MAIPU|SCT|CORE)/ ORDER BY time DESC 场景3:设备编号模式匹配 -- 查询所有R系列设备 SELECT * FROM xr_intf_stats WHERE routername =~ /.*-R[0-9]+$/ ORDER BY time DESC -- 查询NJ开头的所有设备 SELECT * FROM xr_intf_stats WHERE routername =~ /^NJ-.*/ ORDER BY time DESC 场景4:端口和接口查询 -- 查询Tengigabit接口 SELECT * FROM xr_intf_stats WHERE name =~ /tengigabit/ ORDER BY time DESC
阅读全文