InfluxDB有沒有在搜索查詢中使用按位運算符的方法?例如,如果我想找到其中一個標籤或字段值的第2位被設置的所有點,我想可以這樣做:influxdb - 選擇使用位測試?
SELECT * FROM測量,其中TAG_NAME &(1 < < 1)=真
或
SELECT * FROM測量WHERE(TAG_NAME >> 1)& 1 =真
InfluxDB有沒有在搜索查詢中使用按位運算符的方法?例如,如果我想找到其中一個標籤或字段值的第2位被設置的所有點,我想可以這樣做:influxdb - 選擇使用位測試?
SELECT * FROM測量,其中TAG_NAME &(1 < < 1)=真
或
SELECT * FROM測量WHERE(TAG_NAME >> 1)& 1 =真
問:我能找到所有具有第二位的設置點tag
或field
?
A:tag
不可能,因爲它的值始終爲string
類型。
是爲Field
值但執行它filtering
能有性能影響,因爲field
不被索引。也就是說,每個SELECT
查詢都是全表掃描。
bitwise operators
僅在潮流1.3.x
中引入,所以如果您使用的是早期版本,那麼您將無法執行以下操作。
假設您有以下dataset
。
> show field keys from measurement_abcd
name: measurement_abcd
fieldKey fieldType
-------- ---------
value integer
> select * from measurement_abcd
name: measurement_abcd
time tag1 value
---- ---- -----
1434086562000000000 2
1434087562000000000 3
1434088562000000000 4
1434089562000000000 abc 5
1434089562000000000 5
您可以檢索具有第2位由做在現場value
設定的行;
SELECT * FROM measurement_abcd WHERE "value" | 2 = "value"
這會給你以下輸出;
> SELECT * FROM measurement_abcd WHERE "value" | 2 = "value"
name: measurement_abcd
time tag1 value
---- ---- -----
1434086562000000000 2
1434087562000000000 3
一些值得關注的是,大量涌入的位運算符僅適用於boolean
和integer
。它不會在浮動上工作。
參考: https://docs.influxdata.com/influxdb/v1.3/query_language/math_operators/#bitwise-and
使用以下數據來複制上述實驗:
捲曲-i -XPOST 'http://localhost:8086/write?db=stackoverflow1' --data二進制「measurement_abcd值= 2I 1434086562000000000 '
curl -i -XPOST'http://localhost:8086/write?db=stackoverflow1'--data-binary'measurement_abcd value = 3i 1434087562000000000'
捲曲-i -XPOST 'http://localhost:8086/write?db=stackoverflow1' --data二進制 'measurement_abcd值= 4I 1434088562000000000'
捲曲-i -XPOST 'http://localhost:8086/write?db=stackoverflow1' --data二進制 「measurement_abcd值= 5I 1434089562000000000'