Documentation

Query data with InfluxQL

Use InfluxQL (an SQL-like query language) to interact with InfluxDB, and query and analyze your times series data.

In InfluxDB 1.x, data is stored in databases and retention policies. In InfluxDB OSS 2.7, 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.

To query data with InfluxQL, complete the following steps:

  1. Verify buckets have a mapping.
  2. Create DBRP mappings for unmapped buckets.
  3. Query a mapped bucket with InfluxQL.

InfluxQL reference documentation

For complete InfluxQL reference documentation, see the InfluxQL specification for InfluxDB 2.x.

Verify buckets have a mapping

  1. To verify the buckets you want to query are mapped to a database and retention policy, use the influx CLI or the InfluxDB API. For examples, see List DBRP mappings.

  2. If you do not find a DBRP mapping for a bucket, create a new DBRP mapping to map the unmapped bucket.

Create DBRP mappings for unmapped buckets

Query a mapped bucket with InfluxQL

The influx CLI provides an InfluxQL shell where you can execute InfluxQL queries in an interactive Read-Eval-Print-Loop (REPL).

  1. If you haven’t already, do the following:

  2. Use the following command to start an InfluxQL shell:

    influx v1 shell
    
  3. Execute an InfluxQL query inside the InfluxQL shell.

    SELECT used_percent FROM example-db.example-rp.example-measurement WHERE host=host1
    

    For more information, see how to use the InfluxQL shell. For more information about DBRP mappings, see Manage DBRP mappings.

The InfluxDB 1.x compatibility API supports all InfluxDB 1.x client libraries and integrations in InfluxDB 2.7.

  1. To query a mapped bucket with InfluxQL, use the /query 1.x compatibility endpoint, and include the following in your request:

    • Request method: GET
    • Headers:
    • 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.

  2. (Optional) To return results as CSV, include the Accept: application/csv header.

For more information about DBRP mappings, see Manage DBRP mappings.

InfluxQL support

InfluxDB OSS 2.x supports the following InfluxQL statements and clauses. See supported and unsupported queries below.

Supported InfluxQL queries
  • DELETE*
  • DROP MEASUREMENT*
  • EXPLAIN ANALYZE
  • SELECT (read-only)
  • SHOW DATABASES
  • SHOW SERIES
  • SHOW MEASUREMENTS
  • SHOW TAG KEYS
  • SHOW FIELD KEYS
  • SHOW SERIES EXACT CARDINALITY
  • SHOW TAG KEY CARDINALITY
  • SHOW FIELD KEY CARDINALITY

* These commands delete data.

Unsupported InfluxQL queries
  • SELECT INTO
  • ALTER
  • CREATE
  • DROP (limited support)
  • GRANT
  • KILL
  • REVOKE
  • SHOW SERIES CARDINALITY

Was this page helpful?

Thank you for your feedback!


The future of Flux

Flux is going into maintenance mode. You can continue using it as you currently are without any changes to your code.

Flux is going into maintenance mode and will not be supported in InfluxDB 3.0. This was a decision based on the broad demand for SQL and the continued growth and adoption of InfluxQL. We are continuing to support Flux for users in 1.x and 2.x so you can continue using it with no changes to your code. If you are interested in transitioning to InfluxDB 3.0 and want to future-proof your code, we suggest using InfluxQL.

For information about the future of Flux, see the following: