Influxdb:选择包含引号的值

时间:2018-06-05 19:26:53

标签: influxdb

我有一些标记值,不幸的是发送了引号:

> SELECT count("count") FROM "railswebapp"
  WHERE "auth_method" =~ /facebook/ GROUP BY "auth_method"
name: railswebapp
tags: auth_method=\"facebook\"
time count
---- -----
0    4

name: railswebapp
tags: auth_method=facebook
time count
---- -----
0    2632

>
唉,查询“facebook”系列比我想象的要难:

> SELECT "count" FROM "railswebapp"
  WHERE "auth_method" = '\"facebook\"'
> 

这种解决方法有效,但我肯定可以做得更好。有什么建议吗?

> SELECT count("count") FROM "railswebapp"
  WHERE "auth_method" =~ /facebook/
    AND "auth_method" != 'facebook'
  GROUP BY "auth_method"
name: railswebapp
tags: auth_method=\"facebook\"
time count
---- -----
0    4

> SELECT count FROM "railswebapp"
  WHERE "auth_method" =~ /facebook/
    AND "auth_method" != 'facebook'
  GROUP BY "auth_method"

name: railswebapp
tags: auth_method=\"facebook\"
time                count
----                -----
152412927875202308  1
152412927882740082  1
1524130761574200511 1
1524134859852346944 1

> 

注意:涌入不支持查询中的换行符:它们只是使这个问题更具可读性。)

1 个答案:

答案 0 :(得分:0)

influxdb documentation中提到不要将双引号或单引号测量名称,标记键,标记值和字段键。

这是报价的处理方式,

  • 请勿双引号或单引号测量名称,标签键,标签值和字段键。这是有效的线路协议,但InfluxDB假定引号是名称的一部分。
  • 永远不要使用单引号字段值(即使它们是字符串!)。这也不是有效的线路协议。
  • 请勿双引号字段值是浮点数,整数或布尔值。 InfluxDB将假定这些值为字符串。

它也提到了,

  

对于字符串字段值,请使用反斜杠字符\进行转义:

示例

插入标签值包含double-quote的数据

INSERT cpu,host="x" value=10

查询

select * from cpu where host = '\"x\"'

输出

name: cpu
time                host value
----                ---- -----
1530754262442056777 "x"  10