In this post we recap the week’s most interesting InfluxDB and TICK-stack related issues, workarounds, how-tos with writing booleans and Q&A from GitHub, IRC and the InfluxDB Google Group that you might have missed.
Querying data in a non-DEFAULT retention policy
Q: I created a new retention policy called `secret_garden`. I started writing data to that retention policy and the logs show that the writes are successful, but when I query the data I get an empty response. What am I doing wrong?
Results of the `SHOW RETENTION POLICIES` query:
> SHOW RETENTION POLICIES ON "lands" name duration shardGroupDuration replicaN DEFAULT default 0 168h0m0s 1 true secret_garden 24h0m0s 1h0m0s 1 false
Results of a `SELECT` query:
> SELECT * FROM "foliage" >
A: The retention policy `secret_garden` is not the `DEFAULT` retention policy for your database (see the fifth column in the `SHOW RETENTION POLICIES` output).
You’ll need to fully qualify the measurement `foliage` if you’re querying data in a retention policy that is not the `DEFAULT` retention policy. Fully qualify a measurement by specifying the database and retention policy in the `FROM` clause: `<“database”>.<“retention_policy”>.<“measurement”>`.
> SELECT * FROM "lands"."secret_garden"."foliage" name: foliage ------------- time roses 2016-05-31T17:09:04.697144667Z 3 2016-05-31T17:09:07.096708707Z 5
Checking field types
Q: Is there a way to see a field’s data type?
A: Starting with InfluxDB version 1.0, the `SHOW FIELD KEYS` query also returns the field type.
> SHOW FIELD KEYS FROM all_the_types name: all_the_types ------------------- fieldKey fieldType blue string green boolean orange integer yellow float
Querying vs. writing booleans
Q: I’m able to successfully write booleans to my database, but I can’t seem to use them in my query’s `WHERE` clause.
> INSERT hamlet tobe=t > INSERT hamlet tobe=f > SELECT * FROM "hamlet" WHERE "tobe"=t >
A: Acceptable boolean syntax differs for writes and for queries.
In your case, InfluxDB understands that `t` means true when you write your data but it doesn’t understand that `t` means true when you query your data. You’ll need to use `true`, `True`, or `TRUE` to reference that boolean value in a query.
> SELECT * FROM "hamlet" WHERE "tobe"=true name: hamlet ------------ time tobe 2016-05-31T18:07:32.93151244Z true
- Download and get started with InfluxDB v0.13
- Schedule a FREE 20 minute consultation with a Solutions Architect to review your InfluxDB project
- Attend one of our FREE virtual training seminars.
- Looking for InfluxDB Clustering on your infrastructure? Contact Sales to get a demo of InfluxEnterprise plus pricing information.