Query data in InfluxDB 3 Core
InfluxDB 3 Core supports both native SQL and InfluxQL for querying data. InfluxQL is an SQL-like query language designed for InfluxDB v1 and customized for time series queries.
InfluxDB 3 Core limits query time ranges to approximately 72 hours (both recent and historical) to ensure query performance. For more information about the 72-hour limitation, see the update on InfluxDB 3 Core’s 72-hour limitation.
Flux, the language introduced in InfluxDB v2, is not supported in InfluxDB 3.
Query data with the influxdb3 CLI
To get started querying data in InfluxDB 3 Core, use the
influxdb3 query
command
and provide the following:
-H
,--host
: The host URL of the server (default ishttp://127.0.0.1:8181
)-d
,--database
: (Required) The name of the database to query-l
,--language
: The query language of the provided query stringsql
(default)influxql
- SQL or InfluxQL query as a string
If the INFLUXDB3_AUTH_TOKEN
environment variable defined in
Set up InfluxDB 3 Core
isn’t set in your environment, set it or provide your token using
the -t, --token
option in your command.
To query the home sensor sample data you wrote in Write data to InfluxDB 3 Core, run the following command:
influxdb3 query \
--database DATABASE_NAME \
"SELECT * FROM home ORDER BY time"
influxdb3 query \
--database DATABASE_NAME \
--language influxql \
"SELECT * FROM home"
Replace DATABASE_NAME
with the name of the database to query.
To query from a specific time range, use the WHERE
clause to designate the
boundaries of your time range.
influxdb3 query \
--database DATABASE_NAME \
"SELECT * FROM home WHERE time >= now() - INTERVAL '7 days' ORDER BY time"
influxdb3 query \
--database DATABASE_NAME \
--language influxql \
"SELECT * FROM home WHERE time >= now() - 7d"
Example queries
Other tools for executing queries
Other tools are available for querying data in InfluxDB 3 Core, including the following:
SQL vs InfluxQL
InfluxDB 3 Core supports two query languages–SQL and InfluxQL. While these two query languages are similar, there are important differences to consider.
SQL
The InfluxDB 3 SQL implementation provides a full-featured SQL query engine powered by Apache DataFusion. InfluxDB extends DataFusion with additional time series-specific functionality and supports the complex SQL queries, including queries that use joins, unions, window functions, and more.
InfluxQL
InfluxQL is a SQL-like query language built for InfluxDB v1 and supported in InfluxDB 3 Core. Its syntax and functionality is similar SQL, but specifically designed for querying time series data. InfluxQL does not offer the full range of query functionality that SQL does.
If you are migrating from previous versions of InfluxDB, you can continue to use InfluxQL and the established InfluxQL-related APIs you have been using.
Optimize queries
InfluxDB 3 Core provides the following optimization options to improve specific kinds of queries:
Last values cache
The InfluxDB 3 Core last values cache (LVC) stores the last N values in a series or column hierarchy in memory. This gives the database the ability to answer these kinds of queries in under 10 milliseconds. For information about configuring and using the LVC, see:
Distinct values cache
The InfluxDB 3 Core distinct values cache (DVC) stores distinct values for specified columns in a series or column hierarchy in memory. This is useful for fast metadata lookups, which can return in under 30 milliseconds. For information about configuring and using the DVC, see:
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 InfluxDB 3 Core and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support. Customers using a trial license can email trial@influxdata.com for assistance.