Query InfluxDB
To query data from InfluxDB using Flux, use from()
and range
.
Provide the following parameters to each function:
- from():
- bucket or bucketID: InfluxDB bucket name or bucket ID to query.
- range():
- start: Earliest time to return results from.
InfluxDB requires queries to be time-bound, so from()
must always be followed by
range()
.
from(bucket: "example-bucket")
|> range(start: -1h)
Query InfluxDB Cloud or 2.x remotely
To query InfluxDB Cloud or 2.x remotely, provide the following parameters in addition to bucket or bucketID.
- host: InfluxDB Cloud region URL or InfluxDB URL
- org or orgID: InfluxDB organization name or ID
- token: InfluxDB API token
from(
bucket: "example-bucket",
host: "http://localhost:8086",
org: "example-org",
token: "mYSup3r5Ecr3T70keN",
)
Query InfluxDB 1.x
To query InfluxDB 1.x, use the database-name/retention-policy-name
naming
convention for your bucket name.
For example, to query data from the autogen
retention policy in the telegraf
database:
from(bucket: "telegraf/autogen")
|> range(start: -30m)
To query the default retention policy in a database, use the same bucket naming convention, but do not provide a retention policy:
from(bucket: "telegraf/")
|> range(start: -30m)
Results structure
from()
and range()
return a stream of tables
grouped by series
(measurement, tag set, and field).
Each table includes the following columns:
- _start: Query range start time (defined by
range()
) - _stop: Query range stop time (defined by
range()
) - _time: Data timestamp
- _measurement: Measurement name
- _field: Field key
- _value: Field value
- Tag columns: A column for each tag where the column label is the tag key and the column value is the tag value
Columns with the underscore prefix
Columns with the underscore (_
) prefix are considered “system” columns.
Some Flux functions require these columns.
Example InfluxDB query results
_start | _stop | _time | _measurement | host | _field | _value |
---|---|---|---|---|---|---|
2021-01-01T00:00:00Z | 2021-01-02T00:00:00Z | 2021-01-01T00:00:00Z | foo | host1 | bar | 1.2 |
2021-01-01T00:00:00Z | 2021-01-02T00:00:00Z | 2021-01-01T01:00:00Z | foo | host1 | bar | 1.6 |
2021-01-01T00:00:00Z | 2021-01-02T00:00:00Z | 2021-01-01T02:00:00Z | foo | host1 | bar | 2.1 |
_start | _stop | _time | _measurement | host | _field | _value |
---|---|---|---|---|---|---|
2021-01-01T00:00:00Z | 2021-01-02T00:00:00Z | 2021-01-01T00:00:00Z | foo | host2 | bar | 1.2 |
2021-01-01T00:00:00Z | 2021-01-02T00:00:00Z | 2021-01-01T01:00:00Z | foo | host2 | bar | 1.7 |
2021-01-01T00:00:00Z | 2021-01-02T00:00:00Z | 2021-01-01T02:00:00Z | foo | host2 | bar | 2.1 |
Structure results like InfluxQL
InfluxQL returns each field as
a column where the column label is the field key and the column value is the field value.
To structure results similarly with Flux, use pivot()
or schema.fieldsAsCols()
to pivot fields into columns.
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for Flux and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.