influxdb 中标记键的 Where 子句不起作用

Where clause on tag keys in influxdb does not work

我在 0.9.6.1 中看到一些奇怪的行为。问题是当我查询一个没有 where 子句的字段时,它可以工作,但是当我在语句中添加 "WHERE" 标签键时,它会给我空结果。

例如,

select successful, merchant_id from session_metrics_new limit 5

name: session_metrics_new

time                    successful      merchant_id
1453975732000000000     1               bms
1453975733000000000     1               snp
1453975735000000000     1               bms
1453975735000000000     1               snp
1453975739000000000     1               bms

但这不起作用

select successful, merchant_id from session_metrics_new where merchant_id =~ /bms/ limit 5

这里successful是字段key,merchant_id是tag key。我不知道这是一个错误还是我存储数据的方式。请帮助

您正在使用 regex syntax

我尝试使用您使用的相同语法在我的数据库上进行查询,并且得到了一个没有问题的结果集。我看到的唯一问题是,如果成功也是 TAG 而不是 FIELD。但在那种情况下,您应该得到以下异常:

Server returned error: statement must have at least one field in select clause

您是通过 InfluxDb 管理界面还是通过第三方库执行此查询 Java、C#、NodeJs 或类似的东西?

如果您认为自己会一直知道 merchant_id 字段的完整值,请尝试使用简单的 where clause,它略有不同(它不进行模式匹配,但会匹配该领域的全部价值),这应该有效,甚至应该更快:

select successful, merchant_id from session_metrics_new where merchant_id = 'bms' limit 5