Query data with InfluxQL
In InfluxDB 1.x, data is stored in databases and retention policies. In InfluxDB OSS 2.1, data is stored in buckets. Because InfluxQL uses the 1.x data model, a bucket must be mapped to a database and retention policy (DBRP) before it can be queried using InfluxQL.
InfluxQL reference documentation
For complete InfluxQL reference documentation, see Influx Query Language in the latest InfluxDB 1.x documentation.
To use InfluxQL to query bucket data, complete the following steps:
Verify buckets have a mapping
When upgrading from InfluxDB 1.x to 2.1, database and retention policy combinations are mapped to InfluxDB 2.1 buckets. For more information, see Database and retention policy mapping. If you’re not sure how data was written into a bucket, verify the bucket has a mapping.
Use the influx CLI or the InfluxDB API to verify the buckets you want to query are mapped to a database and retention policy.
Use the influx v1 dbrp list command to list DBRP mappings.
The examples below assume that your organization and API token are provided by the active InfluxDB connection configuration in the influx
CLI. If not, include your organization (--org
) and API token (--token
) with each command.
View all DBRP mappings
influx v1 dbrp list
Filter DBRP mappings by database
influx v1 dbrp list --db example-db
Filter DBRP mappings by bucket ID
influx v1 dbrp list --bucket-id 00oxo0oXx000x0Xo
Use the /api/v2/dbrps API endpoint to list DBRP mappings. Include the following:
- Request method:
GET
- Headers:
- Authorization:
Token
schema with your InfluxDB API token
- Authorization:
- Query parameters:
* Required- * orgID: organization ID
- bucketID: bucket ID (to list DBRP mappings for a specific bucket)
- database: database name (to list DBRP mappings with a specific database name)
- rp: retention policy name (to list DBRP mappings with a specific retention policy name)
- id: DBRP mapping ID (to list a specific DBRP mapping)
View all DBRP mappings
curl --request GET \
http://localhost:8086/api/v2/dbrps?orgID=00oxo0oXx000x0Xo \
--header "Authorization: Token YourAuthToken"
Filter DBRP mappings by database
curl --request GET \
http://localhost:8086/api/v2/dbrps?orgID=00oxo0oXx000x0Xo&db=example-db \
--header "Authorization: Token YourAuthToken"
Filter DBRP mappings by bucket ID
curl --request GET \
https://cloud2.influxdata.com/api/v2/dbrps?organization_id=00oxo0oXx000x0Xo&bucketID=00oxo0oXx000x0Xo \
--header "Authorization: Token YourAuthToken"
If you do not find a DBRP mapping for a bucket, complete the next procedure to map the unmapped bucket. For more information on the DBRP mapping API, see the /api/v2/dbrps endpoint documentation.
Map unmapped buckets
Use the influx CLI or the InfluxDB API to manually create DBRP mappings for unmapped buckets.
Use the influx v1 dbrp create command to map an unmapped bucket to a database and retention policy. Include the following:
* Required
- * org and token to authenticate. We recommend setting your organization and token to your active InfluxDB connection configuration in the influx CLI, so you don’t have to add these parameters to each command. To set up your active InfluxDB configuration, see influx config set.
- * database name to map
- * retention policy name to map
- * Bucket ID to map to
- Default flag to set the provided retention policy as the default retention policy for the database
influx v1 dbrp create \
--db example-db \
--rp example-rp \
--bucket-id 00oxo0oXx000x0Xo \
--default
Use the /api/v2/dbrps API endpoint to create a new DBRP mapping. Include the following:
- Request method:
POST
- Headers:
- Authorization:
Token
schema with your InfluxDB API token - Content-type:
application/json
- Authorization:
- Request body: JSON object with the following fields:
* Required- * bucketID: bucket ID
- * database: database name
- default: set the provided retention policy as the default retention policy for the database
- * org or orgID: organization name or organization ID
- * retention_policy: retention policy name
curl --request POST http://localhost:8086/api/v2/dbrps \
--header "Authorization: Token YourAuthToken" \
--header 'Content-type: application/json' \
--data '{
"bucketID": "00oxo0oXx000x0Xo",
"database": "example-db",
"default": true,
"orgID": "00oxo0oXx000x0Xo",
"retention_policy": "example-rp"
}'
After you’ve verified the bucket is mapped, query the bucket using the query
1.x compatibility endpoint.
Query a mapped bucket with InfluxQL
The InfluxDB 1.x compatibility API supports all InfluxDB 1.x client libraries and integrations in InfluxDB OSS 2.1.
To query a mapped bucket with InfluxQL, use the /query 1.x compatibility endpoint. Include the following in your request:
- Request method:
GET
- Headers:
- Authorization: See compatibility API authentication
- Query parameters:
- db: 1.x database to query
- rp: 1.x retention policy to query (if no retention policy is specified, InfluxDB uses the default retention policy for the specified database)
- q: URL-encoded InfluxQL query
URL-encode query parameters that may contain whitespace or other special characters.
curl --get http://localhost:8086/query?db=example-db \
--header "Authorization: Token YourAuthToken" \
--data-urlencode "q=SELECT used_percent FROM example-db.example-rp.example-measurement WHERE host=host1"
By default, the /query
compatibility endpoint returns results in JSON. To return results as CSV, include the Accept: application/csv
header.
InfluxQL support
InfluxDB OSS 2.1 supports InfluxQL read-only queries. See supported and unsupported queries below. To learn more about InfluxQL, see Influx Query Language (InfluxQL).
Supported InfluxQL queries
DELETE
*DROP MEASUREMENT
*EXPLAIN ANALYZE
SELECT
(read-only)SHOW DATABASES
SHOW MEASUREMENTS
SHOW TAG KEYS
SHOW TAG VALUES
SHOW FIELD KEYS
* These commands delete data.
Unsupported InfluxQL queries
SELECT INTO
ALTER
CREATE
DROP
(limited support)GRANT
KILL
REVOKE