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
我在 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